0

我已经在 Raspberry Pi 上启用了 SPI(通过 rasps-config),并且正在通过 SSH 写入我的 Raspberry Pi。Raspberry Pi 通过 USB 电缆连接到我正在编写程序的笔记本电脑,并且我正在使用终端将程序写入我已经 ssh 到的 Raspberry Pi。我已将 LCD 屏幕连接到 Raspberry PI 上。我不知道为什么我的程序没有在 LCD 屏幕上产生变化。我正在使用 spidev (Python)。

我没有使用给定的覆盖,因为我只是想写入 LCD,不接受来自触摸屏的输入(尚未启用)。我也没有使用 Waveshare 的引导驱动程序。我的理解是我可以直接对 LCD 进行命令和写入。

我如何诊断出了什么问题?我提供了我如何写入 LCD 的代码示例。在这段代码之后是另一个十六进制命令(我没有包括在内),它应该会导致 LCD 屏幕关闭。目前,只要连接到 Raspberry Pi,LCD 屏幕就会保持白色。

代码示例:

import spidev
import RPi.GPIO as GPIO
spi = spidev.SpiDev()
bus = 0
device = 0 
spi.open(bus, device)

LCD_CS = 24
LCD_SI = 19
LCD_SCK = 23
LCD_RS = 18
RST = 22

# Set mode
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

# Configure board
GPIO.setup(RST, GPIO.OUT)

# Set clock
GPIO.setup(LCD_SCK, GPIO.OUT)

# Set chip select
GPIO.setup(LCD_CS, GPIO.OUT)

# Set register select
GPIO.setup(LCD_RS, GPIO.OUT)

# Set slave select
GPIO.setup(LCD_SI, GPIO.OUT)

# Reset
GPIO.output(RST, GPIO.HIGH)
GPIO.output(RST, GPIO.LOW)
GPIO.output(RST, GPIO.HIGH)

# Send signal to slave
GPIO.output(LCD_SI, GPIO.HIGH)

# Send clock signal to LCD
GPIO.output(LCD_SCK, GPIO.HIGH)

# Settings (for example)
spi.bits_per_word = 8
spi.max_speed_hz = 64000000
spi.mode = 0b11
spi.lsbfirst = False
spi.no_cs = False
# spi.cshigh = False
spi.loop = False

spi.threewire = False

# Send signal to chip select 0
GPIO.output(LCD_CS, GPIO.LOW)
# Send signal to register select
GPIO.output(LCD_RS, GPIO.LOW)
# Interface Mode Control
to_send = [0xb0]
spi.writebytes(to_send)
GPIO.output(LCD_RS, GPIO.HIGH)

time.delay(5)
GPIO.output(LCD_CS, GPIO.LOW)
GPIO.output(LCD_RS, GPIO.HIGH)
to_send = [0x00]
spi.writebytes(to_send)
GPIO.output(LCD_RS, GPIO.LOW)


GPIO.output(LCD_CS, GPIO.HIGH)
4

0 回答 0