书接上回,配置完spi的屏幕基础,我们来简单学习一下屏幕上的接口…2024-5-10
当然我也是边学边做,有纰漏不要怪我 555
可以看到我的st7735屏幕从右向左,分别为,现在来简单介绍一下作用:
GND 接树莓派的GND(低电平)
VCC 接树莓派的3.3v的VCC(高电平)
SCL Serial Clock Line(时钟线)可能简单理解就是保障树莓派和屏幕通讯要有秩序的意思,连接树莓派的SCLK 23
SDA (数据线)传数据的,连接树莓派的MOSI(Mast Out Slave In)从树莓派的数据到屏幕那边去,而不是MISO,这个反过来了,不要看错了 19
RES (Reset)随便连一个gpio 22
DC (Data/Command)随便连一个gpio 18
CS (Chip Select)随便连一个gpio 24
BLK 随便连一个gpio (可以不用)
在你开始接线之前,记住你的接口号
什么是gpio去了解一下,不是树莓派上上的引脚都叫gpio…
坑点来了
111111.GND和vcc千万千万不要接反了,当接了这2根线的时候,你就可以看到屏幕亮了
1.连接树莓派的SCLK引脚而不是SCL.1或者SCL.0,gpt的回答是那个是给i2c使用的,不知道可以spi使用不,以后了解了再补充
2.使用luma这个库的时候,也有坑,这是我找的一个示例代码,但是我没跟着他一起连,导致了我屏幕没有东西出来,发现了有些引脚是spi库中定义好了的…有点尴尬(如图,dc rst啥的都定义好了,你可以在代码中修改)
3.st7735的屏幕显示大小不要乱改
只有这3种大小支持
好了差不多了接下来可以开始写字了
from luma.core.interface.serial import spi
from luma.lcd.device import st7735
from PIL import Image, ImageDraw
serial = spi(port=0, device=0)
device = st7735(serial, width=128, height=128, rotate=2, h_offset=1, v_offset=2, bgr=True)
buffer = Image.new(device.mode, device.size)
draw = ImageDraw.Draw(buffer)
while True:
draw.rectangle(device.bounding_box, outline=None, fill=(152, 152, 3))
draw.text((30, 50), "hello world!", "white")
device.display(buffer)
我的问题来了,为什么这个spi函数定义的gpio_dc和gpio_rst是定义好了的,但是我插的不是那个引脚,也能点亮屏幕,还望大佬指点…
我去我懂了我说的是物理的引脚地址,他说的是bcm编码的地址