用户工具

站点工具


icore4trtt_11

目录

银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-10-29 yang 初次建立

iCore4T_RTT_11_添加LTDC驱动

  • iCore4T ARM具有LTCD控制器。今天,我将在前面移植SDRAM驱动项目的基础上,给大家分享RTT的LTDC驱动移植,最后实现LCD液晶屏的刷屏测试。

1、首先按照银杏知识库iCore4T双核心板系列教程(STM32CubeMX教程六十——LCD实验驱动4.3寸液晶屏)来对项目Cube进行配置。需要配置时钟、FMC、LTDC、TIM12、GPIO。要与教程配置保持一致,配置完成后重新生成MDK工程。

2、复制刚刚生成的src文件夹main.c文件中的函数SystemClock_Config(void)到board.c。这里内核初始化时要调用该函数进行时钟配置。

3、修改board文件夹下kconfig文件,在menu "Onboard Peripheral Drivers"中添加配置LCD的选项。

4、在bsp\stm32\libraries\STM32H7xx_HAL下文件SConscript中,添加“STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c”。

5、在board文件夹下新建ports文件夹,用来存放接口头文件。在ports下新建lcd_port.h文件,并添加接口头文件路径到board/SConscript中,内容如下:

#ifndef __LCD_PORT_H
#define __LCD_PORT_H
#ifdef __cplusplus
 extern "C" {
#endif
 
#define LCD_BACKLIGHT_USING_GPIO
#define LCD_BL_GPIO_NUM GET_PIN(B, 4)
#define LCD_DISP_GPIO_NUM GET_PIN(B, 14)
 
#define DRV_DEBUG
#define FINSH_USING_MSH
 
#define LCD_WIDTH	480
#define LCD_HSYNC 1
#define LCD_HBP 	20
#define LCD_HFP		24
 
#define LCD_HEIGHT 272
#define LCD_VSYNC 2
#define LCD_VBP 	8
#define LCD_VFP		6
 
#define LCD_BUF_SIZE 2*480*272
#define LCD_HSYNC_WIDTH  1
#define LCD_VSYNC_HEIGHT 2
#define LCD_BITS_PER_PIXEL 2
#define LCD_PIXEL_FORMAT RTGRAPHIC_PIXEL_FORMAT_RGB565
 
#define RED	  0xf800
#define GREEN	0x07e0
#define BLUE	0x001f
 
#ifdef __cplusplus
}
#endif
#endif /*__ LCD_PORT_H */

6、在menu "RT-Thread Kernel -> Memory Management"下勾选Using memory heap object选项,并在子选项中选择Use all of memheap objects as heap。

7、进入stm32h750-gingko-icore4t文件夹下,右击空白处,选择ConEmu Here,使用scons命令,键入scons --target=mdk5,生成MDK5工程。

8、打开stm32h750-gingko-icore4t下的project.uvprojx工程,打开drv_lcd.c文件,将液晶屏背光开启函数中的引脚电平进行修改,iCore4T中PB4、PB14低电平,液晶屏使能供电。编译,烧录,就可以进行LCD测试了。

9、打开终端,选择对应COM口,比特率115200,可以看到系统启动信息,ltdc init success,LTDC初始化成功。运行lcd_test程序则液晶屏红绿蓝三色轮流刷屏。注意:drv_lcd.c中lcd_test函数中三色刷屏在while循环中,若要退出lcd_test函数,请自行修改。

至此说明我们的LTDC驱动已经添加成功。

10、源代码

源代码可以稳步这里下载:

链接:https://pan.baidu.com/s/1fcLU4WaRDlgr0mNYwZj1Yg  提取码:zstq

icore4trtt_11.txt · 最后更改: 2022/04/01 11:11 由 sean