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

描述

本文来源电子发烧友社区,作者:李唐, 帖子地址:https://bbs.elecfans.com/jishu_2290242_1_1.html

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 使用引脚

  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 TFT显示屏

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

合宙通信

图3 终端输出信息

合宙通信

图4终端输出信息

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

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

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

合宙通信

合宙通信

图5 图片显示

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

合宙通信

图6 横屏显示模式

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

合宙通信

图7 匹配后的效果

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

相应的绘制语句为:

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

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

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

合宙通信

图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 LCD显示屏

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

合宙通信

图10 图片显示

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

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

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

合宙通信

图11 正确显示效果

合宙通信
合宙通信

图12 显示文字

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分