锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

(实验13)单片机,STM32F4学习笔记,代码讲解【TFTLCD彩屏显示实验】【正点原子】【原创】

时间:2022-10-27 02:00:00 液晶显示模块电容触摸屏

文章目录

  • 其他文章链接,独家吐血整理
  • 实验现象
  • 主程序
  • 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彩屏初始化程序

这一处略,直接调用函数库即可

代码讲解

//注意在LCDInit初始化中用到了printf函数,也就是串口1,所以如果不初始化这个串口
//不初始化,就导致这个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)
//叠加的意思=显示的图片上再显示字符,非叠加=普通显示汉字

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章