文章目录
- 其他文章链接,独家吐血整理
- 实验现象
- 主程序
- TFTLCD彩屏初始化程序
- 代码讲解
其他文章链接,独家吐血整理
(实验3)单片机,STM32F4学习笔记,代码解释按键输入实验正点原子原创 (实验4)单片机,STM32F4学习笔记,代码讲解【串口实验】【正原子】【原创】 (实验5)单片机,STM32F4学习笔记,代码解释外部中断实验正原子原创 (实验6,实验7)单片机,STM32F4学习笔记,代码解释看门狗实验正原子原创 (实验8)单片机,STM32F4学习笔记,代码解释定时器实验正原子原创 (实验9)单片机,STM32F4学习笔记,解释代码【PWM正原子原创 (实验10)单片机,STM32F4学习笔记,代码解释输入捕获实验正原子原创 (实验11)单片机,STM32F4学习笔记,代码解释电容触摸按钮实验正原子原创 (实验12)单片机,STM32F4学习笔记,解释代码【OLED正原子原创 (实验13)单片机,STM32F4学习笔记,解释代码【TFTLCD彩屏显示实验正点原子原创 (实验15)单片机,STM32F4学习笔记,解释代码【RTC实时点原子】【原创】实时时钟实验 (实验17)单片机,STM32F4学习笔记,代码解释待机唤醒实验正原子原创 (实验23)单片机,STM32F4学习笔记,解释代码【DMA正原子原创 (实验25)单片机,STM32F4学习笔记,解释代码【SPI正原子原创 (实验34)单片机,STM32F4学习笔记,解释代码【FLASH模拟EEPROM正原子原创 (实验36)单片机,STM32F4学习笔记,代码解释外部SRAM正原子原创 (实验37)单片机,STM32F4学习笔记,代码解释内存管理实验正原子原创 (实验38)单片机,STM32F4学习笔记,解释代码【SD【正原子】【原创】 (实验39)单片机,STM32F4学习笔记,解释代码【FATFS正原子原创 (实验46)单片机,STM32F4学习笔记,解释代码【FPU正原子原创 (实验47)单片机,STM32F4学习笔记,解释代码【DSP-FFT正原子原创 (实验50)单片机,STM32F4学习笔记,代码解释串口IAP正原子原创 (实验50)单片机,STM32F4学习笔记,代码解释串口IAP实验-RTC时钟实验正原子原创 (实验55)单片机,STM32F4学习笔记,代码解释网络通信实验正点原子原创
实验现象
本实验利用探索者STM32开发板连接ALIENTEK TFTLCD模块(除CPLD除了7英寸屏幕模块的版本,所有其他版本ALIENTEK的LCD可以支持模块),实现TFTLCD下载成功后,通过模块显示LCD模块插入TFTLCD按下复位后,模块接口(右插),就可以看到LCD模块不断显示一些信息,并不断切换背景色。实验同时显示LCD驱动器的ID,并在串口打印(复位一次,打印一次)。
主程序
int main(void) {
u8 x=0; u8 lcd_id[12]; //存放LCD ID字符串 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);///设置系统中断优先级分组2 delay_init(168); //初始化延迟函数 uart_init(115200); ///初始串口波特率为115200 LED_Init(); //初始化LED LCD_Init(); //初始化LCD FSMC接口 POINT_COLOR=RED; //画笔颜色:红色 sprintf((char*)lcd_id,"LCD ID:X",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,40,210,24,24,"Explorer STM32F4"); 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,12,12,"2014/5/4"); x++; if(x==12)x=0; LED0=!LED0; delay_ms(1000); } }
TFTLCD彩屏初始化程序
这一处略,直接调用函数库即可
代码讲解
// //
不初始化,就导致这个LCD不能使用,md,之前电赛时,被这个搞了,害~
//TFT=薄膜晶体管 //LCD显示屏驱动芯片有很多种,该代码支持多种驱动芯片,提高代码通用性 //2.4寸/2.8寸/3.5寸/4.3寸/7寸 TFT液晶驱动 //支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/ // SPFD5408/1505/B505/C505/NT35310/NT35510/SSD1963等
//显示字符串 //x,y:起点坐标 //width,height:区域大小 //size:字体大小 //*p:字符串起始地址 //void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p) //size字体与OLED无疑
//画点 //x,y:坐标 //POINT_COLOR:此点的颜色 //void LCD_DrawPoint(u16 x,u16 y) //{ // LCD_SetCursor(x,y); //设置光标位置 // LCD_WriteRAM_Prepare(); //开始写入GRAM // LCD->LCD_RAM=POINT_COLOR; //}
//快速画点 //x,y:坐标 //color:颜色 //void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color) //这个也是画点,快速画点意思就是,这个函数调用函数较少,只实现画点,速度快上面还要写入GRAM
//读取个某点的颜色值 //x,y:坐标 //返回值:此点的颜色 //u16 LCD_ReadPoint(u16 x,u16 y) //读点==读取颜色值,用于拓展功能
//在指定位置显示一个字符 //x,y:起始坐标 //num:要显示的字符:" “—>”~" //size:字体大小 12/16/24 //mode:叠加方式(1)还是非叠加方式(0) //void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) //叠加的意思=显示的图片上再显示字符,非叠加=普通显示汉字