【K230/K230D 新技能点亮】手把手教你在RTOS系统添加一个屏幕|保姆级教程

来源:RT-Thread操作系统 RTOS 8 次阅读
摘要:上一期,我们详细讲解了K230/K230D RTOS 系统中直接适配好的 SPI 屏幕使用方法,快速上手就能点亮屏幕,https://mp.weixin.qq.com/s/Qy0gyceHgGGdeSlUKrU2IA 不少开发者反馈:项目里常用的小众型号、未适配的 SPI/QSPI/MCU 屏幕,该怎么在 K230/K230D 上驱动?别急,今天这篇保姆级教程,就来手把手教你搞定自定义屏幕适配,解

上一期,我们详细讲解了K230/K230D RTOS 系统中直接适配好的 SPI 屏幕使用方法,快速上手就能点亮屏幕,https://mp.weixin.qq.com/s/Qy0gyceHgGGdeSlUKrU2IA

不少开发者反馈:项目里常用的小众型号、未适配的 SPI/QSPI/MCU 屏幕,该怎么在 K230/K230D 上驱动?别急,今天这篇保姆级教程,就来手把手教你搞定自定义屏幕适配,解锁更多低成本小屏方案!

今天就基于官方最新驱动框架,给你一篇从零到点亮的完整教程,照着做就能成功!

一、先搞懂:

K230 屏幕驱动框架长啥样?

Connector + Panel 双层架构

  • Connector:管理 DSI/SPI/QSPI 等物理接口

  • Panel:管理屏幕型号、初始化序列、显示时序

  • 一切配置从 make menuconfig 开始,代码只填必要信息

一句话:先配菜单,再补代码,最后跑 sample

二、适配新屏第一步:menuconfig 完整配置流程

打开终端进入 SDK,直接敲:

make menuconfig

进入路径:

MPP Configuration → Display Configuration

1

打开对应显示驱动

根据你的屏幕接口选择:

  • MIPI DSI 屏 → 开 Enable LCD Display Driver

  • SPI 屏 → 开 Enable SPI LCD Display Driver

  • HDMI 显示 → 开 Enable HDMI Display Driver

2

配置引脚(必做!)

以最常用的 MIPI DSI 屏幕为例:

  • DSI-LCD Reset GPIO

  • DSI-LCD BackLight GPIO

SPI 屏还要额外配:

  • DC 脚、CS 脚、时钟脚、数据脚

3

选择面板驱动

  • 如果库里已有你的屏幕型号,直接勾选

  • 如果没有,先随便选一个相近的,后面我们自己加

配置完保存退出,先编译一次,确保基础链路正常。

三、适配前必须拿到

这 2 份资料

没有这两个,神仙也点不亮屏幕:

1

屏幕时序参数(厂家给)

pclk_hz=27000000

这些是点亮屏幕的核心参数

2

屏幕初始化序列(厂家给)

类似这种:

{0xFF,5,{0x77,0x01,0x00,0x00,0x13}},

后面要转换成 SDK 规定的格式。

四、手把手:代码里添加新屏幕(5步搞定)

第1步:定义屏幕类型

打开文件:

src/rtsmart/mpp/include/comm/k_connector_comm.h

新增一行,格式如下:

#define ST7701_368_552_DSI_V1  K_CONN_TYPE(ST7701, DSI, 368, 552, 1)

第2步:添加面板驱动文件

在目录下新建/复制面板文件:

src/rtsmart/mpp/kernel/connector/src/panels/

主要填写 3 块内容:

  1. 初始化序列 init_sequence

  2. 显示时序 timing

  3. GPIO 配置(复位、背光)

static const k_panel_desc st7701_368_552_dsi_v1 = {

第3步:把面板挂进驱动列表

打开 connector_dev.c,把你的面板加入 panel_variants,

这样系统启动时才能识别到新屏幕。

第4步:Kconfig + Makefile 加入编译

  • Kconfig 添加菜单选项

  • Makefile 根据配置决定是否编译你的 .c 文件

这样 menuconfig 里就能看到你新加的屏幕了!

第5步:**加 CanMV Python 支持**

修改:

src/canmv/port/modules/modmedia_display.c

添加类型映射,Python 就能直接调用新屏幕。

五、最关键:验证是否成功

(2 条命令)

编译完成烧录后,在 shell 里输入:

1

查看当前支持的屏幕

list_connector

能看到你定义的名字,说明驱动加载成功

2

直接点亮测试

./mpp/sample_vo_osd.elf -c 你的屏幕ID

跑起来就亮了!

六、最常见 3 个坑

1

menuconfig 看不到新面板

→ 没打开上层驱动(LCD/DSI 开关)

→ Kconfig 里没写 depends

2

编译过了,但 list_connector 看不到

→ Makefile 没加源文件

→ 没挂进 panel_variants

3

屏幕有电但不亮

→ 复位/背光 GPIO 方向反了

→ 初始化序列错

→ 时序参数完全不对

→ sample 用错 connector_type

参考文档:

https://www.kendryte.com/k230\_rtos/zh/main/advanced\_development\_guide/how\_to\_add\_display.html

相关推荐
评论区

登录后即可参与讨论

立即登录