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)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ST7789是一种常用的液晶显示驱动芯片,可以通过MicroPython来控制它显示中文。以下是ST7789 MicroPython中文显示的思路: 1. 安装相关的MicroPython库,如st7789和font。可以使用pip命令安装这些库。 2. 在MicroPython中导入所需的库,并初始化ST7789屏幕。可以使用spi模块进行通信。 3. 导入中文字库,将所需的中文字符转换为像素数据。可以使用FontForge等工具创建字体文件,并使用Python脚本将字体文件转换为像素数据。 4. 在屏幕上显示中文字符。可以使用ST7789库提供的显示函数,将像素数据传输到屏幕上。 5. 根据需要设置字体大小、颜色、位置等参数,以实现不同的显示效果。 需要注意的是,在显示中文字符时,要确保字符的像素数据与屏幕的分辨率匹配,否则显示效果会受到影响。此外,还需注意字体文件的大小,过大的字体文件可能会占用较多的存储空间,导致程序运行缓慢或崩溃。 ### 回答2: ST7789是一种常用的液晶显示驱动芯片,而MicroPython则是一种支持嵌入式开发的Python语言实现。在使用ST7789进行中文显示时,可以采用以下思路: 1. 初始化驱动:首先,需要初始化ST7789驱动芯片,包括设置硬件连接和配置驱动寄存器,使其能够正常工作。 2. 准备字库:中文显示需要使用相应的字库文件,可以将字库文件存储在设备的闪存中,或者通过SD卡等外部存储设备读取。 3. 字符编码转换:中文通常采用Unicode编码,而ST7789驱动需要将字符编码转换为其支持的ASCII码或其他字符集。可以使用Python的字符串编码转换函数将Unicode编码转换为目标字符集。 4. 绘制字符:根据字库文件中的字符信息,通过驱动芯片提供的绘制函数将字符绘制到显示屏中。需要注意屏幕分辨率和字符大小,以保证绘制效果和显示质量。 5. 多行显示:如果要显示多行文本,可以通过控制光标位置,逐行绘制字符。可以使用循环结构和字符串处理函数对多行文本进行分割、拼接和处理。 6. 显示刷新:每次绘制完字符后,需要通过驱动芯片提供的显示刷新函数将绘制的内容更新到屏幕上,以实现实时显示效果。 7. 其他功能:根据具体需求,还可以实现一些其他功能,比如文本对齐、字体大小设置、背景颜色设置等,以提升用户体验。 总之,ST7789驱动MicroPython可以很好地结合实现中文显示。通过合理的字库准备、字符编码转换和绘制函数调用,可以在ST7789驱动的液晶屏上实现清晰、协调的中文显示效果。 ### 回答3: ST7789是一种常用的驱动芯片,用于驱动彩色TFT液晶显示屏。而MicroPython是一种用于嵌入式系统的Python编程语言。要在ST7789使用MicroPython进行中文显示,可以采取以下思路。 首先,我们需要准备一个包含中文字库的数据文件。中文字库文件可以由专门的工具生成,其中每个汉字对应一个字节的数据。这个文件可以在MicroPython中被加载和解析。 接下来,我们需要通过SPI总线连接ST7789芯片和MicroPython设备。通过SPI总线,MicroPython设备可以向ST7789芯片发送命令和数据。 然后,我们需要编写MicroPython代码来初始化ST7789芯片并设置一些参数,例如显示方向、分辨率等。这些参数设置将确保显示的内容正确地在屏幕上呈现。 接着,我们可以使用MicroPython的字符绘制函数从中文字库文件中读取相应的字节数据,并将其发送给ST7789芯片。通过逐个字节地读取,并按照字库文件的格式,我们可以在屏幕上显示中文字符。 最后,我们可以编写一些函数来实现基本的文本渲染功能,例如将字符串拆分为单个字符,并在屏幕上显示这些字符。 需要注意的是,ST7789芯片和MicroPython设备的硬件连接和初始化过程可能有所不同,具体的步骤需要根据具体的硬件和软件平台进行调整。此外,中文字库文件的格式和读取方式也可能有所不同,需要根据具体情况进行代码的编写和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值