天天看点

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

K210 屏幕驱动

准备工作

  • 开发板:Sipeed Maix Bit
  • 开发环境 : kendryte IDE 官方

开发准备

1、下载示例代码

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

2、安装相关依赖文件

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

3、编译项目

4、使用KFlash上传编译完成的固件

问题

使用官方的示例后会出现显示图片花屏的问题

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

解决

1、查看原理图确定引脚是否正确

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

在io_mux_init(void)函数中查看相关引脚的配置

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

确定了引脚的配置没有问题。

2、查看 void lcd_init(void) 函数

内部调用了 tft_hard_init(); 函数

tft_hard_init(); 函数主要为对SPI的相关初始化设置

更改了SPI为3线模式

// spi_init(SPI_CHANNEL, SPI_WORK_MODE_0, SPI_FF_OCTAL, 3, 0);
spi_init(SPI_CHANNEL, SPI_WORK_MODE_0, SPI_FF_OCTAL, 3, 0);
           

修改后依然无法解决。

3、修改SPI的速度

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

修改为

spi_set_clk_rate(SPI_CHANNEL, 15000000);
           

编译下载后问题解决。

原因分析

SPI的速度过快,导致不稳定使得屏幕显示出现问题。

K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕K210 屏幕驱动

代码地址:https://github.com/FlashOpen-Go/K210_Demo