看了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:
int main(void)
{
u8 x=0;
u8 lcd_id[12]; //存放LCD ID字符串
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
LCD_Init();
POINT_COLOR=RED;
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
while(1)
{
switch(x)
{
case 0:LCD_Clear(WHITE);break;
case 1:LCD_Clear(BLACK);break;
case 2:LCD_Clear(BLUE);break;
case 3:LCD_Clear(RED);break;
case 4:LCD_Clear(MAGENTA);break;
case 5:LCD_Clear(GREEN);break;
case 6:LCD_Clear(CYAN);break;
case 7:LCD_Clear(YELLOW);break;
case 8:LCD_Clear(BRRED);break;
case 9:LCD_Clear(GRAY);break;
case 10:LCD_Clear(LGRAY);break;
case 11:LCD_Clear(BROWN);break;
}
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"WarShip STM32 ^_^");
LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,lcd_id); //显示LCD ID
LCD_ShowString(30,130,200,16,16,"2012/9/5");
x++;
if(x==12)x=0;
LED0=!LED0;
delay_ms(1000);
}
}
来源:CSDN
作者:mvp_dong
链接:https://blog.csdn.net/mvp_dong/article/details/43150951