思澈sdk-新建lcd
新加的屏幕为CO5300的显示芯片,FT6146的触摸芯片,1.43寸的圆屏,分辨率为466x466。Rtt的驱动在rtos\rtthread\bsp\drivers\drv_lcd.c
1 在customer\peripherals下复制co5300\文件夹,粘贴为co5300_143\
在SiFli-SDK\customer\peripherals\Kconfig中新增
config LCD_USING_CO5300_143bool
default n
(
co5300至此有3个同ID的驱动,在co5300xxxx.c的LCD_DRIVER_EXPORT(co5300, LCD_ID, &lcdc_int_cfg, &CO5300_drv, LCD_PIXEL_WIDTH, LCD_PIXEL_HEIGHT, 2);LCD_ID决定了驱动匹配的接口。RTT根据根据Kconfig中的配置选择将哪个添加到驱动链表中,同ID的驱动第一个匹配成功的驱动会被选择,一旦匹配成功立刻退出
- 可以从其他已有的驱动复制一份代码,然后将名字、ID、对应的命令(绝大部分都一样不需要改)改成自己的
- 注意修改内部的Kconfig文件的depend宏(这里Kconfig文件是哪个?)
)
2 在customer\peripherals\Kconfig_lcd中添加如下配置(注意修改的地方有两个LCD_USING_TFT_CO5300_143)
config LCD_USING_TFT_CO5300_143bool "1.43 round QSPI Single-Screen LCD(DO0143FMST12)"select LCD_USING_CO5300select TSC_USING_FT6146 if BSP_USING_TOUCHDselect BSP_LCDC_USING_QADSPIselect LCD_USING_PWM_AS_BACKLIGHTif LCD_USING_TFT_CO5300_143config LCD_CO5300_VSYNC_ENABLEbool "Enable LCD VSYNC (TE signal)"def_bool yendif
3 在该文件中的config LCD_HOR_RES_MAX配置项下添加:(这里466为横向分辨率)
default 466 if LCD_USING_TFT_CO5300_143
4 在该文件中的config LCD_VER_RES_MAX配置项下添加:(这里466为纵向分辨率)
default 466 if LCD_USING_TFT_CO5300_143
5 在该文件中的config LCD_DPI配置项下添加:(这里300为DPI)
default 300 if LCD_USING_TFT_CO5300_143
6 验证,在例程的project文件夹下执行:
scons --board=watch525 –menuconfig
选中:
在生成的文件夹project\build_watch525_hcpu\rtconfig.h中
#define LCD_USING_TFT_CO5300_143 1
#define LCD_HOR_RES_MAX 466
#define LCD_VER_RES_MAX 466
#define LCD_DPI 300
可以发现配置项已经写入
7 检查新增LCD用到的pin,以及reset pin 的pinmux是否正确
在customer\boards\watch525_base\bsp_pinmux.c
void BSP_PIN_LCD(void)中有关于lcd的QSPI引脚的配置
在rtos\rtthread\bsp\sifli\drivers\drv_lcd.c
void gpio_cs_init(void)中有关于lcd的cs引脚的配置
在customer\boards\watch525_base\bsp_lcd_tp.c中cs引脚定义
#define LCD_RESET_PIN (0) // GPIO_A00
#define TP_RESET (9) // GPIO_A09
8 运行`build_sf32lb52-lcd_n16r8_hcpu\uart_download.bat`下载程序到开发板,当提示`please input serial port number`,输入开发板实际串口号