本文來源電子發燒友社區,作者:李唐, 帖子地址: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 使用引腳
- 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 圖形繪制
- 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款屏的顯示驅動,使得開發板所支持的顯示屏類型又有了新的豐富。
-
合宙通信
+關注
關注
0文章
147瀏覽量
1728 -
Air105
+關注
關注
0文章
48瀏覽量
291
發布評論請先 登錄
相關推薦
評論