import machine
import time
# 初始化 SPI 與腳位
spi = machine.SPI(0, baudrate=1000000, sck=machine.Pin(18), mosi=machine.Pin(19))
res = machine.Pin(20, machine.Pin.OUT)
dc = machine.Pin(21, machine.Pin.OUT)
cs = machine.Pin(17, machine.Pin.OUT)
def write_cmd(cmd):
dc.value(0); cs.value(0)
spi.write(bytearray([cmd]))
cs.value(1)
def write_data(data):
dc.value(1); cs.value(0)
spi.write(bytearray([data]))
cs.value(1)
print(">>> 正在對新螢幕進行通電測試...")
# 硬體重置
res.value(1); time.sleep(0.1)
res.value(0); time.sleep(0.2)
res.value(1); time.sleep(0.2)
write_cmd(0x01); time.sleep(0.1) # 軟體重置
write_cmd(0x11); time.sleep(0.1) # 退出休眠
write_cmd(0x29); time.sleep(0.1) # 開啟顯示
# 填充全螢幕測試 - 這次用紫色 (打破黑色的詛咒!)
write_cmd(0x2A); write_data(0); write_data(0); write_data(1); write_data(0x3F)
write_cmd(0x2B); write_data(0); write_data(0); write_data(0); write_data(0xEF)
write_cmd(0x2C)
dc.value(1); cs.value(0)
purple = bytearray([0xF8, 0x1F]) # 紫色
for i in range(320 * 240):
spi.write(purple)
if i % 10000 == 0:
print("填充進度:", i)
cs.value(1)
print(">>> 測試結束!如果螢幕亮起紫色,就代表這塊新螢幕成功了!")