王铭东老师在 micropython中ST7789无法点亮的问题中使用了两个库来解决无法点亮ST7789的问题,实际上库是没有问题的,主要问题是出在SPI的初始化的问题上。
import random
from machine import Pin, SPI
import st7789py
import vga2_bold_16x32 as font
# SPI初始化
spi = SPI(2, baudrate=60000000, polarity=1, phase=0, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
#怀疑是初始化的问题,可以看到初始化应该是省略了一些东西的,个人觉得可能是SPI初始化的时候没分配具体的引脚,导致无法通讯成功,王老师原语句是:
#tft = st7789py.ST7789(SPI(2, 60000000), 240, 240, reset=Pin(15), dc=Pin(2), cs=Pin(5), rotation=0)
#后面我去翻了一下为了解决屏幕点不亮的问题而导入的库,发现那个库是有默认SPI的引脚的,因此用那个库初始化之后才能正常点亮
# 创建显示屏对象
tft = st7789py.ST7789(spi, 240, 240, reset=Pin(15), dc=Pin(2), cs=Pin(5), rotation=0)
# 屏幕显示蓝色
tft.fill(st7789py.color565(0, 0, 255))
# 显示Hello
tft.text(font, "Ni hao ", 0, 0, st7789py.color565(255, 0, 0), st7789py.color565(0, 0, 255))
根据实际测试:王老师在库中注释那那两条语句也不用注释,直接运行即可。
总结下:
- 初始化SPI
- 不用修改ST7789PY这个库
- 按我这样运行即可