Micropython驱动ST7735显示中文(中文字体库)

大家是不是遇到显示中文就头大了,又是取模又是怎么的,但麻烦,太繁琐了。对确定的字符显示来说还可以,但不确定的内容时就麻烦了。所以,今天还是来讲讲干货了,来使用一个方便的方式来显示中文,不用取模,直接显示你想要的中英文字体。

开始之前要说一下的时,使用官方原版好像是不行的,因为他的FrameBuff不带一个载入字体的方法。

哪么,重要的东西当然要放在前面:

使用到的固件 " fb增强固件及字库",至于是哪位大神弄的,我也不清楚(主要是下载时包里也没有原作者的信息),我也是从网上下的,大家可以网上搜下,当然,后面我会打包一起上传的。

另外推荐下一个开发MicroPython的工具,就是 Thonny,下载地址: Thonny, Python IDE for beginnershttps://thonny.org/,这个非常的方便,可以直接编译上传,还有文件管理,很赞,重要的是支持Windows和Mac,当然还有Linux,放几张截图:

可以使用这个软件上传固件,再也不用搞不清ESP32的起始地址了,直接刷固件就好了。

点菜单栏-->工具-->设置-->切到解释器-->点 Install or update firmware,选择开发板端口和固件就可以了(我这里产mac系统,所以端口不是COMxx之类的)

点安装就可以开始刷固件了。

好了,准备工作都完成了,现在以ESP32来开始说明吧!

接线方式

ESP32 ---- ST7735

GND ---- GND

3.3V ---- VDD

IO23 ---- SDA

IO18 ---- SCL

IO22 ---- RST

IO21 ---- DC

IO16 ---- CS

这里还是使用硬件SPI

 这里用到的了FrameBuffer,这样刷新速度还是得到了不少的提升,库文件是st7735.py(和上一讲名称一样,但内容不一样哦,别搞混了)

好了,我们把库文件和字体文件上传上去,在本地文件列表中点右键选择 "上传到 /",即可以上传,把st7735.py和GB2312-12.fon上传。

这些准备工作好了之后就简单了,直接上代码,这次我们可以直接在Thonny的shell中执行代码

from machine import Pin,SPI
from st7735 import ST7735
 
 
# 初始化SPI
spi=SPI(2, baudrate=20000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(23))
# 初始化LCD  rot 是显示方向,bgr是默认显示的颜色
lcd=ST7735(128, 160, spi,dc=Pin(21),cs=Pin(16),rst=Pin(22),rot=0,bgr=0)
 
#执行没有报错我们就继续了,正常初始化后屏幕应该是变黑了,这是因为我们初始化时是传了bgr=0,也就是填充黑色
#加载字体文件 如果不是发的固件,应该就是没有下面这个方法
lcd.font_load('./GB2312-12.fon')
 
# 现在我们就可以开始显示中文了,试一下吧
lcd.text("中文测试Test",10,10,0xFFFF)
# 记住一定要调用下面这个方法,不然内容是不会显示出来的哦,所以你可以把所有的内容都显示好后再调用,这样刷新没有闪一下的感觉了
lcd.show()
 
# 其实现在主要是调用的FrameBuffer里的方法在进行显示信息,主要方法有
# 填充屏幕颜色
lcd.fill(0xFFFF)
lcd.show()
 
# 显示的相关方法和详细介绍请看官方文档说明
# https://docs.micropython.org/en/latest/library/framebuf.html

 实际效果

铺垫很多,真正上手时就几行代码就搞定了,是不是很简单,感觉简单就走起吧!

接着就是本文中所有提到的内容打包了:fb增强固件及字库.zip-Python文档类资源-CSDN下载fb增强固件及字库,还有驱动ST7735的相关库更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/weixin_57604547/73076423

百度盘下载:

链接: https://pan.baidu.com/s/1m1bL7cgWu2VEUsELCAuqCQ 提取码: nrfs


---------------------
作者:WishBaBi
来源:CSDN
原文:https://blog.csdn.net/weixin_57604547/article/details/122274614
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

Micropython驱动SSD1306显示中文需要以下几个步骤: 1. 使用FontForge等工具创建或下载中文字体文件,例如宋体、黑体等。 2. 将字体文件转换为.py文件,例如使用font_to_py.py工具转换。 3. 在Micropython中导入字体文件,并定义一个函数用于显示中文字符。 4. 在函数中,根据字体文件的格式,将中文字符转换为像素点的坐标和颜色信息。 5. 将像素点信息显示在SSD1306屏幕上。 以下是一个简单的示例代码: ```python # 导入字体文件 import font_simfang12 as font # 定义显示中文字符的函数 def show_chinese(oled, x, y, text): for ch in text: if '\u4e00' <= ch <= '\u9fff': # 判断是否为中文字符 data = font.ch_table.get(ch) # 获取像素点信息 if data: # 判断是否存在像素点信息 oled.fill_rect(x, y, 12, 12, 0) # 清空原有的像素点 for i in range(0, 144): for j in range(0, 12): if (data[i] >> j) & 1 == 1: # 判断像素点是否需要显示 oled.pixel(x + i % 12, y + j, 1) # 在屏幕上显示像素点 x += 12 # 更新x坐标,用于显示下一个中文字符 else: x += 6 # 如果不是中文字符,更新x坐标,用于显示下一个字符 # 在屏幕上显示中文字符 from machine import Pin, I2C import ssd1306 i2c = I2C(scl=Pin(5), sda=Pin(4)) oled = ssd1306.SSD1306_I2C(128, 64, i2c) oled.fill(0) show_chinese(oled, 0, 0, "你好,世界!") oled.show() ``` 需要注意的是,显示中文字符的函数中,本示例使用的字体文件为宋体,字体大小为12x12像素,因此每个中文字符占用的像素点为12x12。如果使用其他字体文件或大小,需要根据实际情况进行修改。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值