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

2023-11-18

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

开始之前要说一下的时,使用官方原版好像是不行的,因为他的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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Micropython驱动ST7735显示中文(中文字体库) 的相关文章

  • 在WPF中设置鼠标位置[重复]

    这个问题在这里已经有答案了 我打算用 Kinect 手势替换我的鼠标 但我找不到为 WPF 应用程序设置鼠标位置的方法 无法使用 NET BCL 但是 如果您确实想要它 您可以使用本机SetCursorPos in User32 dll D
  • 如何通过拖动扩展窗口框架来使 WPF 窗口可移动?

    在 Windows 资源管理器和 Internet Explorer 等应用程序中 人们可以抓住标题栏下方的扩展框架区域并拖动窗口 对于 WinForms 应用程序 窗体和控件尽可能接近本机 Win32 API 一个人会简单地覆盖WndPr
  • 从 C# 代码启动 Storyboard

    我试图从 C 调用在 xaml 代码中声明的故事板
  • 如何使两个Viewbox中的文本大小相同?

    在 WPF 中 我使用 Viewbox 使一些文本自动调整大小 问题是文本最终会使用不同的字体 因为较短的文本会显示得较大
  • Application.Current.MainWindow 与 Window.GetWindow(this)

    我需要访问托管给定控件的窗口 this在下面的代码片段中 假设我的应用程序中只有一个窗口 以下哪条语句占用的资源较少 或者是否有更好的方法来做到这一点 Application Current MainWindow Window GetWin
  • 如何从同一个类中的静态函数调用公共事件?

    我有一个类 其中包含另一个类的 ObservableCollection 如果类成员之一发生更改 我希望收到通知 因为我需要在 MediaCollection 类中进行一些计算 所以我向该类添加了一个事件 public event Prop
  • 使用 ItemsSource 之前,项目集合必须为空

    如果我将 DataTrigger 放入一个简单的列表框中 我会收到此运行时异常 使用 ItemsSource 之前 项目集合必须为空 我的列表框没有数据触发 也不例外
  • 单击“保存”按钮后的 WPF 数据绑定

    我有一个应用程序和一个设置窗口 其中 TabControl 包含几个 TabItems 它们每个都有一些字段 文本框 这些字段数据绑定到同一个 Singleton 对象 仅在单击 保存 按钮后 是否有任何优雅且类似 WPF 的数据绑定方式
  • 如何在 MVVM 视图模型中指定资源?

    假设我想显示对象列表 其中每个对象应该有一个名称和一个合适的图像 例如带有图标的菜单项 或带有文本和图像的按钮 所有示例和程序都将视图模型中的图像公开为 PNG 文件的路径 然后绑定Source of an Image对此 但是如果我想使用
  • 将静态对象添加到资源字典中

    我有一个在多个视图中引用的类 但我希望它们之间只共享该类的一个实例 我已经像这样实现了我的课程 using System public class Singleton private static Singleton instance pr
  • WPF 路径冲突检测?

    I have two hexagon shapes
  • 将 XML 绑定到 ItemsSource 时应用动态 XPath 表达式

    我有一个 XML 文档 描述如何为用户输入构建 UI 元素 并且有包含一些数据和 XPath 表达式的数据对象 我有一个数据对象类型的 DataTemplate 它使用 HierarchicalDataTemplate 来构建基于 XML
  • WPF 中的多列树视图 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道我在哪里可以获得 WPF 中的多列树视图之类的控件吗 夏普开发 http www icshar
  • 绑定到 AvalonDock 2 中的 LayoutAnchorableItem 可见性

    我正在尝试绑定Visibility of LayoutAnchorableItem到 ViewModel 中的布尔值 以便我可以以编程方式显示和隐藏可锚定
  • WPF - 单击按钮时设置焦点 - 无代码隐藏

    有没有办法设置Focus使用 WPF 从一个控件到另一个控件Triggers 就像下面的例子
  • 图像调整大小性能:System.Drawing 与 System.Windows.Media

    我遇到了需要调整大量图像大小的情况 这些图像目前在文件系统上存储为 jpg 文件 但我希望稍后在项目中内存中只有 byte 源图像大小是可变的 但输出应该是 3 个不同的预定大小 应保留长宽比 用空白填充原始图像 即 将调整非常高的图像大小
  • 单元测试“混合”WPF/Silverlight 控件

    我正在启动一个新的 WPF Silverlight 自定义控件项目 并希望对此进行单元测试 但是我对如何解决这个问题有点困惑 此控件将基于 WPF 和 Silverlight 的相同代码库 并使用 ifs 和部分类进行少量分叉以消除差异 我
  • 多重绑定多重选择ListView

    好吧 我这里有一个奇怪的 我想要弄清楚的是如何拥有一个由 ObservableCollection 填充的列表视图 根据第一个列表视图的选择更新另一个由另一个 ObservableCollection 填充的 ListView 然后使用 v
  • 如何通过 XAML 绑定设置当前 CultureUI

    我有一个绑定到字符串的 TextBlock 我希望该字符串以应用程序的当前 UI 区域性显示 我想在 XAML 中执行此操作 文本块很简单 如下所示
  • 如何在代码中设置控件模板?

    我在 XAML 中有这个

随机推荐