bilibili-视频演示
需要准备下列物品
-
ESP32-S3 (R16BN8) 开发板(已刷入MicroPython+LVGL固件)
-
3.5寸TFT液晶显示屏模块串口SPI驱动ILI9488带电容触摸(触摸FT6236)RGB320*480
-
USB数据线
-
杜邦线若干(母对母)

接线图(建议放大看)
左侧3.5寸SPI触控显示屏
右侧ESP32-S3 R16N8

接线表格
| ili9488屏幕 | ESP32-S3开发板 |
| VDD | 3.3V |
| GND | GND |
| CS | 10 |
| RST (RESET) | 18 |
| D/C (DC) | 17 |
| SDI (MOSI) | 11 |
| SCK (CLK) | 12 |
| BL (LED) | 16 |
| SDO (MISO) | 13 |
| NC/3V3 | / |
| CTP-SDA | 6 |
| CTP-SCL | 7 |
| CTP-INT | / |
| CTP-RST | / |
注意事项
上述表格的连线会和下面的代码一一对应
如果熟悉原理,可自行修改连接针脚和代码
引入LVGL,显示驱动和触控驱动等
import lvgl as lvfrom espidf import VSPI_HOSTfrom ili9XXX import ili9488from ft6x36 import ft6x36from machine import Pin, I2C
点亮屏幕
p16 = Pin(16, Pin.OUT)p16.value(1)
创建显示屏对象(480*320横屏)
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=480, height=320,rot=0x20,invert=False, double_buffer=True, half_duplex=False)
创建横屏触摸
touch = ft6x36(sda=6, scl=7,inv_x=False, inv_y=False, swap_xy=True)
官方文档
https://docs.lvgl.io/8.3/examples.html#events

复制触控代码
因为我们有自己的显示和触控实例化,所以只需要把官方代码创建图片和事件的代码复制过来就好,不需要把网页的依赖复制过来
class Event_1():def __init__(self):self.cnt = 1## Add click event to a button#btn = lv.btn(lv.scr_act())btn.set_size(100, 50)btn.center()btn.add_event(self.event_cb, lv.EVENT.CLICKED, None)label = lv.label(btn)label.set_text("Click me!")label.center()def event_cb(self,e):print("Clicked")btn = e.get_target_obj()label = btn.get_child(0)label.set_text(str(self.cnt))self.cnt += 1evt1 = Event_1()

触控效果
显示一个按钮,点击一下,数字+1

注意
我在同一个商家同时买的两块屏幕,显示效果完全不一样
左侧正常,右侧感觉屏幕是坏的(一样的代码)
目前没有找到问题,抽空问问商家

本篇是合集内容的第三篇
合集往期内容
《MicroPython[ESP32-S3]:刷入LVGL+MicroPython固件支持16M 外扩flash/8M PSRAM》
《MicroPython[ESP32-S3]:使用esptool刷入固件,支持lvgl》
点击底部的阅读原文
可以查看本文对应的10分钟的视频演示

END
