LuatOS
直播中

jinglixixi

8年用户 1640经验值
擅长:嵌入式技术 光电显示 接口/总线/驱动 控制/MCU
私信 关注

【合宙Air105开发板试用体验】两款彩色显示屏的显示驱动

Air105 核心板提供了对LCD显示屏的支持,当然所支持的型是有一定范围,其支持的显示屏有:

1)基于st7735的1.8寸TFT显示屏

2)基于st7789的1.54寸TFT显示屏

3)基于st7735v的0.96寸TFT显示屏

4)基于gc9306x的2.4寸TFT显示屏

自己手头也有几块显示屏,但与它支持的型号都存在着一定的差异,经测试与修改从中实现了2款显示屏的驱动。其使用的引脚如图1所示,其具体的对应关系如下:

VCC--3.3V

GND--GND

SCL--PC15/HSPI_SCK

SDA--PC13/HSPI_MOSI

RES--PC12/HSPI_MISO

DC--PE08/U3_RX

CS--PC14/HSPI_CS

BL--PE09/U3_TX

1.jpg

图1 使用引脚

  1. 2.4寸的TFT屏

手中这块2.4寸的TFT屏,其核心芯片为ili9341,故其初始化的过程使用的是如下语句:

lcd.init("ili9341",{port

= "device",pin_dc = pin.PE08 , pin_pwr = pin.PE09, pin_rst =

pin.PC12, direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd)

2.jpg

图2 TFT显示屏

在对程序执行“运行和调试”后,其输出的信息如图3和图4所示。

3.jpg

图3 终端输出信息

4.jpg

图4终端输出信息

通过图3和图4可知,其程序的下载是成功,且支持对芯片ili9341的处理。

为了验证对显示屏驱动的有效性,可使用色彩清屏语句测试,其语句为lcd.clear(0xF800),其效果如图2所示,表明对显示屏的初始化是成功的,且清屏函数有效。

在图片显示语句的情况下,则可获得图5所示的效果,说明显示屏处于竖屏的显示模式。

5.jpg

v1.jpg

图5 图片显示

此时,可令direction = 90来切换到横屏的显示模式,见图6所示。由图可以发现,屏上一块灰色的区域,说明其几何参数还不匹配。

6.jpg

图6 横屏显示模式

将参数调整为w = 320,h = 240之后,就可得到正确的效果,见图7所示。

7.jpg

图7 匹配后的效果

此外,还可以测试图形的绘制效果,见图8所示。

相应的绘制语句为:

lcd.drawLine(20,120,150,120,0x001F)

lcd.drawRectangle(20,140,120,170,0xF800)

lcd.drawCircle(50,150,20,0x0CE0)

8.jpg

图8 图形绘制

  1. 0.96寸LCD屏

手中的LCD屏,其核心芯片为st7735s,其初始化的过程使用的是如下语句:

lcd.init("st7735s",{port

= "device",pin_dc = pin.PE08, pin_pwr = pin.PE09, pin_rst = pin.PC12,

direction = 2,w = 160,h = 80,xoffset = 0,yoffset = 0},spi_lcd)

9.jpg

图9 LCD显示屏

在使用图片显示语句lcd.showImage(0,0,"/luadb/J.jpg")的情况下,其显示效果如图10所示。

10.jpg

图10 图片显示

你为什么会出现不规则的显示边框呢?

经测试分析,仍是参数不匹配产生的问题。将参数调整为xoffset

= 1,yoffset = 26之后,就可得到正确的效果,见图11所示。

11.jpg

图11 正确显示效果

v2.jpg
v3.jpg

图12 显示文字

为此就实现了这2款屏的显示驱动,使得开发板所支持的显示屏类型又有了新的丰富。

更多回帖

发帖
×
20
完善资料,
赚取积分