这一节我们讲解了如何控制240x240的oled屏幕,该oled屏幕驱动芯片是ST7789,我们控制屏幕显示两行字。
一、目的
使用MicroPython开发ESP32开发板控制240x240的oled屏幕。
二、环境
ESP32 + 240x240的oled彩色屏幕+ Thonny IDE + 几根杜邦线
开发板和屏幕接线方法:
三、屏幕介绍
有8个引脚,通过SPI协议进行通信。使用的芯片是ST7789。至于什么是SPI协议?大家自行百度,这里不再赘述。
引脚定义如下:
四、使用方法
屏幕驱动下载地址:
百度网盘:
链接: https://pan.baidu.com/s/1S7Ve8kNj_xiSH5o9OrPZAQ 提取码: zxyp
导入以下两个库:st7789.py 和 st7789py.py
注意将st7789py.py的以下两行注释掉:
字体库:
字体库文件比较大,注意开发板的存储空间。它占用空间较大,所以代码写的复杂的话会出现申请内存error。
将以上文件和我们的代码放在开发板的根目录下即可
代码:
- import random
- from machine import Pin, SPI
- import st7789
- import st7789py
- import vga2_bold_16x32 as font
- import time
-
- # 解决第1次启动时,不亮的问题
- st7789.ST7789(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))
-
- # 创建显示屏对象
- tft = st7789py.ST7789(SPI(2, 60000000), 240, 240, reset=Pin(15), dc=Pin(2), cs=Pin(5), backlight=Pin(22), rotation=0)
-
- # 屏幕显示蓝色
- tft.fill(0)
-
- # 显示Hello
- tft.text(font, "Good luck!", 0, 0, st7789py.color565(255, 255, 0), st7789py.color565(0, 255, 0))
-
-
- def show_text():
- for rotation in range(4):
- tft.rotation(rotation)
- tft.fill(0)
- col_max = tft.width - font.WIDTH*6
- row_max = tft.height - font.HEIGHT
-
- for _ in range(100):
- tft.text(
- font,
- "I love U!",
- random.randint(0, col_max),
- random.randint(0, row_max),
- st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8)),
- st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8))
- )
- time.sleep_ms(300)
-
- # 随机显示I love U!
- while True:
- show_text()
五、演示效果