看了TFTLCD和FSMC(灵活的静态存储控制器)的简介,还是一知半解,不知所云。
TFTLCD使用80并口,80 并口有如下一些信号线:
CS: TFTLCD 片选信号。
WR:向 TFTLCD 写入数据。
RD:从 TFTLCD 读取数据。
D[15: 0]: 16 位双向数据线。
RST:硬复位 TFTLCD。
RS:命令/数据标志( 0,读写命令; 1,读写数据)。
只是记住FSMC在使用的时候要初始化和使能就行了。
关于lcd.c这个文件竟然接近3000行,好吧,我是写不出来,只能在主函数里调用了。
main.c:
intmain(void)
{
u8x=0;
u8lcd_id[12];//存放LCDID字符串
delay_init();//延时函数初始化
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600);//串口初始化为9600
LED_Init();//LED端口初始化
LCD_Init();
POINT_COLOR=RED;
sprintf((char*)lcd_id,“LCDID:%04X”,lcddev.id);//将LCDID打印到lcd_id数组。
while(1)
{
switch(x)
{
case0:LCD_Clear(WHITE);break;
case1:LCD_Clear(BLACK);break;
case2:LCD_Clear(BLUE);break;
case3:LCD_Clear(RED);break;
case4:LCD_Clear(MAGENTA);break;
case5:LCD_Clear(GREEN);break;
case6:LCD_Clear(CYAN);break;
case7:LCD_Clear(YELLOW);break;
case8:LCD_Clear(BRRED);break;
case9:LCD_Clear(GRAY);break;
case10:LCD_Clear(LGRAY);break;
case11:LCD_Clear(BROWN);break;
}
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,“WarShipSTM32^_^”);
LCD_ShowString(30,70,200,16,16,“TFTLCDTEST”);
LCD_ShowString(30,90,200,16,16,“ATOM@ALIENTEK”);
LCD_ShowString(30,110,200,16,16,lcd_id);//显示LCDID
LCD_ShowString(30,130,200,16,16,“2012/9/5”);
x++;
if(x==12)x=0;
LED0=!LED0;
delay_ms(1000);
}