micropython驱动ST7789v液晶显示jpg图片

st7789的micropython驱动持续更新中。

前两篇文章中提到了micropython驱动st7789液晶显示中文字符和BMP图片文件,由于显示BMP图片实在实在有点缓慢,所以找了一个更新版本的驱动,这个版本的驱动中集成了jpg和png图片的解码显示功能。

驱动来源:

https://github.com/russhughes/st7789_mpy

一、驱动编译到micropython固件中

安装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)

你可能感兴趣的:(驱动开发)