当前位置: 代码迷 >> 综合 >> RT-Thread使用-----TouchGfx(3)----LTDC
  详细解决方案

RT-Thread使用-----TouchGfx(3)----LTDC

热度:95   发布时间:2023-12-19 08:43:33.0

本文介绍如实使能LTDC驱动,进行屏幕点亮及测试工作。

1、屏幕参数及接口整理

        我们使用的是正点原子的ATK4342型号的RGB565接口屏幕,屏幕的相关参数如下:

根据正点原子开发板手册可知,屏幕控制相关的LTDC接口定义如下

2、CubeMx配置

        打开Cubemx进行LTDC接口的使能及配置

        配置时需要保证接口与上表中进行匹配 对应

        保证配置接口速度为Very High

         LTDC时钟配置,,本文第一个表格中已经给出该屏幕的时钟信号应该在5-12Mhz,所以我们必须保证LTDC的时钟在该范围内。配置如下。

生成文档,关闭Cubemx软件。 

2、文件拷贝

  •         drv_lcd.c到dirvers文件夹

        C:\RT-ThreadStudio\repo\Extract\RT-Thread_Source_Code\RT-Thread\4.0.3\bsp\stm32\libraries\HAL_Drivers

  •         lcd_port.h到drvers\include文件夹

        C:\RT-ThreadStudio\repo\Extract\Board_Support_Packages\RealThread\STM32F429-FIRE-CHALLENGER\0.1.0\rtt_default_project_0\board\ports

 3、文件修改

        对lcd_port.h文件中的定义根据表1中的相关参数进行修改。同时对背光控制进行修改,正点原子使用PB5管脚记性背光控制。修改为如下设置。

#ifndef __LCD_PORT_H__
#define __LCD_PORT_H__#define LCD_WIDTH           480
#define LCD_HEIGHT          272
#define LCD_BITS_PER_PIXEL  16
#define LCD_BUF_SIZE        (LCD_WIDTH * LCD_HEIGHT * LCD_BITS_PER_PIXEL / 8)
#define LCD_PIXEL_FORMAT    RTGRAPHIC_PIXEL_FORMAT_RGB565#define LCD_HSYNC_WIDTH     1
#define LCD_VSYNC_HEIGHT    1
#define LCD_HBP             40
#define LCD_VBP             5
#define LCD_HFP             8
#define LCD_VFP             5#define LCD_BACKLIGHT_USING_GPIO
#define LCD_BL_GPIO_NUM     GET_PIN(B, 5)#endif

        对board.h文件进行修改,增加宏定义如下

#define BSP_USING_LCD

  3、编译错误解决

        编译后报错如下

        

 修改drv_lcd.c文件,进行头文件的增加及Debug功能的使能。

LCD背光错误修改

  3、下载验证

        编译无误后,下载代码后,串口出现如下提示

          问题分析:

        我们使用的是480*272分辨率且接口定义为RGB565。所以单幅画面所需的内存大小为480*272*2=261120byte=255kb。255kb远大于STM32F429IG可使用的RAM大小,所以我们需要使用上篇文章中使能的SDRAM来进行内存的申请,具体配置如下。打开RT-Thread Setting

        使能相关配置后进行编译下载验证,串口显示如下 

 串口发送命令lcd_test,屏幕进行闪烁颜色切换 

LCD

         

  相关解决方案