问题遇到的现象和发生背景
我在使用esp32-S3 micropython 开发板,还有3.5寸 tft SPI 480x320 v1.0屏幕,现在屏幕显示的引脚已经没有问题,可以正常显示,就是触控没有反应,希望能教教我如何让esp32连接这5个触摸T-IRQ,T-DO,T-DIN,T-CS ,T-CLK。
屏幕的驱动为ili9488,触摸驱动为xpt2046.
屏幕与esp32连接的引脚为:
屏幕引脚 esp32-s3引脚
SDO(MISO) 13
LED 16
SCL 12
SDI(MOSI) 11
DC 17
RESET 18
CS 10
GND GND
VCC 3.3v
触摸引脚
T-IRQ
T-DO
T-DIN
T-CS 6
T-CLK
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
import lvgl as lv
import time
from espidf import VSPI_HOST
from ili9XXX import ili9488
from xpt2046 import xpt2046
from machine import Pin, I2C
p16 = Pin(16, Pin.OUT)
p16.value(1)
disp = ili9488(miso=13, mosi=11, clk=12, cs=10, dc=17, rst=18,
spihost=VSPI_HOST, mhz=20, power=-1, backlight=-1,
factor=16, hybrid=True, width=320, height=480,
invert=False, double_buffer=True, half_duplex=False)
touch = xpt2046(cs=6, spihost=VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948)
scr = lv.obj()
class CounterBtn():
def __init__(self, scr):
self.cnt = 0
btn = lv.btn(scr)
# btn.set_pos(20, 10) # 相对于屏幕左上角 x为20,y为10
btn.set_size(120, 50)
btn.align(lv.ALIGN.CENTER,0,0)
btn.add_event_cb(self.btn_event_cb, lv.EVENT.ALL, None)
label = lv.label(btn)
label.set_text("Button")
label.center()
def btn_event_cb(self, evt):
code = evt.get_code()
btn = evt.get_target()
if code == lv.EVENT.CLICKED:
self.cnt += 1
label = btn.get_child(0)
label.set_text("Button: " + str(self.cnt))
counterBtn = CounterBtn(scr)
lv.scr_load(scr)
try:
from machine import WDT
wdt = WDT(timeout=1000)
print("提示: 按下Ctrl+C结束程序")
while True:
wdt.feed()
time.sleep(0.9)
except KeyboardInterrupt as ret:
print("程序停止运行,ESP32已经重启...")
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
希望可以将引脚连接对,实现触摸功能。