st7789的micropython驱动持续更新中。
前两篇文章中提到了micropython驱动st7789液晶显示中文字符和BMP图片文件,由于显示BMP图片实在实在有点缓慢,所以找了一个更新版本的驱动,这个版本的驱动中集成了jpg和png图片的解码显示功能。
驱动来源:
https://github.com/russhughes/st7789_mpy
安装esp-idf和micropython不再赘述,参阅我以前的文章。注意esp-idf与micropython间的匹配性。
安装完成后在
~/micropython/ports/esp32下执行:
make clean
make USER_C_MODULES=~/st7789_mpy/st7789/micropython.cmake
编译BOARD=GENERIC的默认板子,注意要把扩展SPIRAM添上,添加方法见我之前专门写编译micropython固件的文章,不然RAM根本不够用,jpg解码功能会暂用大量RAM。
编译完成后,写入固件。
from machine import Pin,SPI
import st7789
#spi=SPI(baudrate=150000000, sck=Pin(18), mosi=Pin(23),miso=Pin(19))
#不写通道号,将使用软件SPI总线,实测刷新速度很慢,不推荐
spi=SPI(1,baudrate=30000000, sck=Pin(18), mosi=Pin(23),miso=None)
#使用硬件spi,速度不能太高,太高会导致cpu重启,实测高于30000000就会重启
st7789.ST7789(spi, 240, 320, reset=Pin(27, Pin.OUT), dc=Pin(26, Pin.OUT), cs=Pin(5, Pin.OUT))
tft=st7789.ST7789(spi, 240, 320, reset=Pin(27, Pin.OUT), dc=Pin(26, Pin.OUT), cs=Pin(5, Pin.OUT),inversion=False)
#如果图片反色了,注意修改这个参数:inversion=False
tft.init()
tft.rotation(1)
#tft.fill(0)
tft.jpg("niuniu.jpg",0,0)