沒圖沒真相,一直知道有字庫芯片這么個東西,終于找時間下手試了試,還算比較好用,就是開始賣家資料給錯了白浪費倆小時。。。
sh1122 剛好mpy論壇有程序,直接白嫖
字庫芯片 參照我徒弟的庫,簡單重新寫了下
難點在于frambuf的轉換,如何從單色轉成4位灰度啊,我沒找到,于是不得不重新自己寫了個函數,我水平卻是不大行,能用但是感覺效率比較低下,有點慢。
上個測試代碼:
from machine
import Pin
, SoftSPI
from sh1122
import SH1122_SPI
import framebuf
import time
from GT30L
import GT30L32S4W
import fonttransspi
=SoftSPI
(baudrate
=5000000, sck
=Pin
(23), mosi
=Pin
(22),miso
=Pin
(18))
oled
= SH1122_SPI
(256, 64, spi
, dc
=Pin
(26, Pin
.OUT
), res
=Pin
(25, Pin
.OUT
), cs
=Pin
(27, Pin
.OUT
))
fontlib
=GT30L32S4W
(spi
,cs
=Pin
(5, Pin
.OUT
))chstr
=b'\xce\xd2\xbf\xcf\xb6\xa8\xd4\xda\xbc\xb8\xb0\xd9\xc4\xea\xc7\xb0\xbe\xcd\xcb\xb5\xb9\xfd\xb0\xae\xc4\xe3'
chstr2
=b'\xd6\xbb\xca\xc7\xc4\xe3\xcd\xfc\xc1\xcb\xce\xd2\xd2\xb2\xc3\xbb\xbc\xc7\xc6\xf0'
chstr3
=b'\xd7\xdf\xb9\xfd\xc2\xb7\xb9\xfd\xc3\xbb\xd3\xf6\xb9\xfd'
chstr4
=b'\xbb\xd8\xcd\xb7\xd7\xaa\xcd\xb7\xbb\xb9\xca\xc7\xb4\xed'def showch(x
,y
,s
,scale
):length
=len(s
)fball
=framebuf
.FrameBuffer
(bytearray(16*length
*8), 16*length
, 16, framebuf
.GS4_HMSB
)chlist
=[]for i
in range(0,length
,2):m
=s
[i
]l
=s
[i
+1]chlist
.append
(m
*256+l
)xreal
=x
for s
in chlist
:xreal
+=16fb
=fonttrans
.show_16x16
(fontlib
.gb2312_16x16
(s
),scale
)fball
.blit
(fb
,xreal
,y
)oled
.blit
(fball
,x
,y
)oled
.show
()def showlyrics(y
,s
,scale
):length
=len(s
)fball
=framebuf
.FrameBuffer
(bytearray(16*length
*8), 16*length
, 16, framebuf
.GS4_HMSB
)chlist
=[]for i
in range(0,length
,2):m
=s
[i
]l
=s
[i
+1]chlist
.append
(m
*256+l
)x
=int((256-16*length
/2-16)/2)xreal
=0for s
in chlist
:xreal
+=16fb
=fonttrans
.show_16x16
(fontlib
.gb2312_16x16
(s
),scale
)fball
.blit
(fb
,xreal
,0)oled
.blit
(fball
,x
,y
)oled
.show
()showlyrics
(0,chstr
,15)
showlyrics
(16,chstr2
,15)
showlyrics
(32,chstr3
,15)
showlyrics
(48,chstr4
,15)
還有個難點就是mpy沒法轉中文的gbk啊。。。頭大,我想想辦法再。。。
總結
以上是生活随笔為你收集整理的又拿下一块屏幕,中景园2.08寸OLED SH1122 带字库芯片 GT30L32S4W的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。