本文由RT-Thread论坛@ppacctv 原创发布:https://club.rt-thread.org/ask/article/15d851442a2670c3.html
我的板子是这样的,MCU是STM32F407VGT6
我的TFT-LCD 是这样的,驱动是ili9486,320x480,8bit并口
组合到一起是这样的
LCD 找卖家要的驱动
第一步
第一次移植,不确定问题会在哪发生,所以
Keil + STM32CubeMX
先裸机驱动LCD,验证代码的正确性,减少问题出在LCD这边的可能性。
第二步
裸机没问题,使用RT-Thread Studio新建工程。
在RT-Thread Studio 里,双击 CubeMX Settings,打开CubeMX进行硬件配置
下面是我的配置,Timing的参数先保持CubeMX生成的默认值就好,后面可以慢慢调,调不好LCD没显示的,或者不稳定,不利于移植
时钟、串口、FSMC,设置完,File 菜单,save一下,然后右上角生成 CODE,完事关闭CubeMX。编译一下,应该没有错误。
第三步
到
https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32f407-atk-explorer/applications/
下载整个lvgl文件夹,复制到我们工程的applications 文件夹下;
到
https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32f407-atk-explorer/board/ports
下载drv_lcd.c/drv_lcd.h 复制到我们工程的drivers 文件夹下;
还有我们的LCD驱动,建个ili9486文件夹,放到 drivers 文件夹下。
然后我们右键我们的工程,属性->C/C++常规->路径和符号->包含->GNU C,将我们的lvgl、ili9486、lvgl/demo 文件夹加入。
这步总之就是将以上文件(夹)加入工程并确保能够被找到,怎么加,个人随便!
第四步
编辑 drv_lcd.h
#define LCD_W 320 //LCD水平宽
#define LCD_H 480 //LCD垂直高
#define LCD_ADDR_BASE 0x60000000 //FSMC地址,命令RAM地址
#define LCD_REGSELECT_BIT 16
#define LCD_ADDR_DATA (LCD_ADDR_BASE + (1 << (LCD_REGSELECT_BIT + 2)) - 2) //数据RAM地址
#de