林堪堪 发表于 2022-3-29 19:45

AT32驱动TFT LCD显示示例

1.1         案例 TFT LCD显示
1.1.1       简介TFT LCD液晶显示屏是薄膜晶体管型液晶显示屏,TFT液晶每个像素都可以单独控制,因而每个节点都相对独立,并可以连续控制,这不仅提高了显示的反应速度,还同时可以精确控制显示色阶,所以TFT液晶的色彩更真。TFT液晶显示屏的特点是亮度好、对比度高、层次感强、颜色鲜艳,但也存在耗电和成本较高的不足。AT32 SUFR板载了一个3.5寸的TFT LCD液晶显示屏,分辨率为480*320,通过外设XMC连接。
1.1.2       资源准备硬件环境:对应产品型号的AT-SURF-F437 Board软件环境:AT32F435_437_Firmware_Library_V2.x.x\project\at_sufr_f437\examples\tft_lcd
1.1.3       硬件设计本案例使用的硬件资源有TFTLCD液晶显示屏、PCA9555 IO扩展芯片,对应的引脚如下:
表15. 硬件资源使用
   编号   PIN Name外设功能备注
1PF0XMC_A0-
2PD14XMC_D0-
3PD15XMC_D1-
4PD0XMC_D2-
5PD1XMC_D3-
6PE7XMC_D4-
7PE8XMC_D5-
8PE9XMC_D6-
9PE10XMC_D7-
10PE11XMC_D8-
11PE12XMC_D9-
12PE13XMC_D10-
13PE14XMC_D11-
14PE15XMC_D12-
15PD8XMC_D13-
16PD9XMC_D14-
17PD10XMC_D15-
18PD7XMC_NE1-
19PD5XMC_NWE-
20PD4XMC_NOE-
21NRSTNRSTLCD复位

表16. PCA9555使用
   编号   PIN Name引脚功能备注
1IO0_0LCD_BL_CTRLLCD背光控制

对应的电路原理如下:

1.1.4       软件设计1)   TFT LCD测试初始化TFT LCD将信息显示在LCD屏上
2)   代码介绍main函数代码描述
int main(void){uint8_t step = 0; /* 初始化系统时钟 */system_clock_config(); /* 初始化中断优先级分组 */   nvic_priority_group_config(NVIC_PRIORITY_GROUP_4); /* 初始化延时函数 */delay_init(); /* 初始化LCD */lcd_init(LCD_DISPLAY_VERTICAL); while(1){    /* 改变显示颜色 */       switch(step)    {      case 0: lcd_clear(WHITE ); break;      case 1: lcd_clear(BLUE); break;      case 2: lcd_clear(BRED); break;      case 3: lcd_clear(GBLUE ); break;      case 4: lcd_clear(RED   ); break;      case 5: lcd_clear(BRRED ); break;      case 6: lcd_clear(GREEN ); break;      case 7: lcd_clear(YELLOW); break;      default: step = 0; break;    }       /* 显示信息 */       lcd_string_show(10, 20, 200, 24, 24, (uint8_t *)"TFT LCD Test");    lcd_string_show(10, 60, 200, 24, 24, (uint8_t *)"2021-01-20");       step++;       if(step == 7)    {      step = 0;    }       delay_ms(1000);}}

void lcd_init(void)函数代码描述
/*** @briefinitialization lcd screen* @paramdirection: display direction* @retval none*/void lcd_direction(uint8_t direction)



1.1.5       下载验证在LCD屏上显示信息,每秒钟切换一次显示背景。

页: [1]
查看完整版本: AT32驱动TFT LCD显示示例