本站改版新增arduino频道
固件
lv_micropython_esps3n16r8_color16
lv_micropython_esps3n16r8_color32
下载:链接: https://pan.baidu.com/s/1Lw9T9yAgH0TLrFv9Psijag?pwd=1cx7
提取码: 1cx7 复制这段内容后打开百度网盘手机App,操作更方便哦


淘宝店铺:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.4aaf2e8dSDzhBh&id=654017131060&_u=t1tfoi0p687f
接线表:
ILI9488屏幕 ESP32S3开发板
VCC 5V或3.3V
GND----GND
CS----10
RESET----18
DC----17
SDI(MOSI)----11
SCK----12
BL----16
SDO(MISO) ----13
T_CLK----D18
T_CS----21
T_DI----11
T_DO----13
T_IRQ(PEN) 不连接
import lvgl as lv
import espidf as esp
import time
#from espidf import VSPI_HOST
from ili9XXX import ili9488, LANDSCAPE
from xpt2046 import xpt2046
import esp32
from micropython import const
import fs_driver
from machine import Pin
import onewire, ds18x20
import machine
machine.freq(240000000)
#BL引脚
p16 = Pin(16, Pin.OUT)
p16.value(1)
# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 320
HEIGHT = 480
# 创建显示屏对象
disp = ili9488(spimode=2, miso=13, mosi=11, clk=12, cs=10, dc=17, rst=18, power=-1, backlight=-1, rot=0x80,
spihost=esp.VSPI_HOST, mhz=60, factor=16, hybrid=True, width=WIDTH, height=HEIGHT,
invert=True, double_buffer=True, half_duplex=False, initialize=True)
# 创建触摸屏对象
touch = xpt2046(cs=21, spihost=esp.VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948, half_duplex=False)
# ------------------------------ 屏幕初始化操作 --stop------------------------
# 1. 创建显示screen对象。将需要显示的组件添加到这个screen才能显示
scr = lv.obj() # scr====> screen 屏幕
#scr = lv.scr_act()
#scr.clean()
#color
dark = lv.color_hex(0x000000)
light_dark = lv.color_hex(0x2c2c2c)
white = lv.color_hex(0xffffff)
light_green = lv.color_hex(0x097abb)
scr.set_style_bg_color(white, 0)
# 2. 封装的需要显示的按钮
class CounterBtn():
def __init__(self, scr):
self.cnt = 0
btn = lv.btn(scr) # 将当前按钮与screen对象进行关联
# btn.set_pos(20, 10) # 相对于屏幕左上角 x为20,y为10
btn.set_size(120, 50) # 设置按钮的宽度为120, 高度为50
btn.align(lv.ALIGN.CENTER,0,0) # 居中(第1个0表示x的偏移量,第2个0表示相对于y的偏移量)
btn.add_event_cb(self.btn_event_cb, lv.EVENT.ALL, None) # 设置按钮被按下后的回调函数
label = lv.label(btn) # 在按钮上创建一个标签Label,用来显示文字用
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
print(code)
print(lv.EVENT.CLICKED)
# Get the first child of the button which is the label and change its text
label = btn.get_child(0)
label.set_text("Button: " + str(self.cnt)) # 修改文字内容
# 3. 创建按钮
counterBtn = CounterBtn(scr)
# 4. 显示screen对象中的内容
lv.scr_load(scr)
# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:
from machine import WDT
wdt = WDT(timeout=2000) # enable it with a timeout of 2s
print("提示: 按下Ctrl+C结束程序")
while True:
wdt.feed()
time.sleep(0.9)
except KeyboardInterrupt as ret:
print("程序停止运行,ESP32已经重启...")
# ------------------------------ 看门狗,用来重启ESP32设备 --stop-------------------------
Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号
执行时间: 0.011067152023315 seconds