当前位置: 首页 > news >正文

思澈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`,输入开发板实际串口号

http://www.xdnf.cn/news/930871.html

相关文章:

  • LeetCode--25.k个一组翻转链表
  • 从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
  • 【第八篇】 SpringBoot高级配置(配置篇)
  • CZGL.SystemInfo:跨平台的系统信息获取库
  • AUTOSAR实战教程--DoIP_01_配置项解释
  • 0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
  • Linux下GCC和C++实现统计Clickhouse数据仓库指定表中各字段的空值、空字符串或零值比例
  • Go基本语法——go语言中的四种变量定义方法
  • 【Java学习笔记】BigInteger 和 BigDecimal 类
  • 【Go语言基础【19】】接口:灵活实现多态的核心机制
  • 基于RT-DETR算法的夜间交通车辆与行人目标检测
  • FPGA静态功耗
  • 2025年与2030年AI及AI智能体 (Agent) 市场份额分析报告
  • 网络之交换机
  • 【题解-洛谷】B3626 跳跃机器人
  • JavaWeb——登录(14/16):登录校验-Interceptor-详解(使用细节、拦截路径的配置、匹配规则、执行流程、拦截器与过滤器的区别)
  • 【华为云Astro 轻应用】组装“待处理工单”页面示例
  • C语言基础面试问答
  • 【人工智能 | 项目开发】Python Flask实现本地AI大模型可视化界面
  • 苍穹外卖-day01
  • 用 DeepSeek 高效完成数据分析与挖掘
  • Bootstrap Table开源的企业级数据表格集成
  • 大数据学习(133)-Hive数据分析2
  • 论文笔记:Large Language Models for Next Point-of-Interest Recommendation
  • 云原生监控体系建设:Prometheus+Grafana的企业级实践
  • 作为点的对象CenterNet论文阅读
  • 【论文阅读30】Bi-LSTM(2024)
  • Spring Boot + Flink + FlinkCDC 实现 MySQL 同步到 MySQL
  • 【Java学习笔记】Arrays类
  • 视频音频去掉开头结尾 视频去掉前n秒后n秒 电视剧去掉开头歌曲