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]