欢迎光临散文网 会员登陆 & 注册

[micropython]esp32 s3驱动st7789 1.69寸的240x280屏幕,注意初始化函数

2023-08-29 10:14 作者:车科技2020  | 我要投稿

from machine import Pin, SoftSPI,SPI

from st7789 import ST7789

from st7789 import CYAN

from st7789 import BLACK

from st7789 import BLUE


#hspi = SPI(2, baudrate=80000000, polarity=1, sck=Pin(14), mosi=Pin(13), miso=Pin(12))


'''

scl 14

sda 13

rst 9

dc 8

cs 11

blk 7

'''

sck=Pin(14, Pin.OUT)

mosi=Pin(13, Pin.OUT)

miso=Pin(12, Pin.OUT)

rst =Pin(9, Pin.OUT)

dc=Pin(8, Pin.OUT)

cs=Pin(11, Pin.OUT)

blk=Pin(7, Pin.OUT)


#rst.on() #一定要off才有反映

cs.off()

blk.on()


#display = ST7789(hspi,320,240,reset=Pin(9),dc=Pin(8))

#display.fill(CYAN)


import lvgl as lv

from ili9XXX import st7789

import fs_driver

import time

#gc.collect()

#0.这个是关键的初始化函数,支持TB购买的1.69寸240x280的spi屏幕

disp=st7789(

    mosi=13,

    clk=14,

    cs=11,

    dc=8,

    rst=9,

    mhz=80,

    factor=16,#这个参数一定要设置为16,这样才能支持240x280的屏幕

    #hybrid=True,

    width=240,

    height=280,

    start_x=0,

    start_y=20,

    double_buffer=1,

    rot=0,

    #half_duplex=False,

    #initialize=True

    )


# 1. 创建显示screen对象。将需要显示的组件添加到这个screen才能显示

scr = lv.obj()  # scr====> screen 屏幕

fs_drv = lv.fs_drv_t()

fs_driver.fs_register(fs_drv, 'S')

scr = lv.scr_act()

scr.clean()


# 2. 封装要显示的组件

class MyWidget():

    def __init__(self, scr):

        # 创建滑块slider组件

        self.slider = lv.slider(scr)

        self.slider.set_width(180)  # 设置滑块的长度

        # self.slider.set_range(10, 50)  # 默认值是0-100

        self.slider.center()  # 在窗口的中间位置

        self.slider.add_event_cb(self.slider_event_cb, lv.EVENT.VALUE_CHANGED, None)  # 添加事件的回调函数

 

        # 创建一个标签label

        self.label = lv.label(scr)

        self.label.set_text("0")  # 默认值

        self.label.align_to(self.slider, lv.ALIGN.OUT_TOP_MID, 0, -15)  # label的中间与滑块的上外边框中间对齐,然后y向上15像素 x不变

 

    def slider_event_cb(self, evt):

        slider = evt.get_target()

        # 修改label的值

        self.label.set_text(str(slider.get_value()))

 

 

 

# 3. 创建要显示的组件

MyWidget(scr)

 

# 4. 显示screen对象中的内容



lv.scr_load(scr)



# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------

try:

    from machine import WDT

    wdt = WDT(timeout=5000)  # enable it with a timeout of 2s

    print("提示: 按下键盘Ctrl+C键结束程序")

    while True:

        wdt.feed()

        time.sleep(0.9)

except KeyboardInterrupt as ret:

    print("程序停止运行,ESP32已经重启...")

    time.sleep(10)

# ------------------------------ 看门狗,用来重启ESP32设备 --stop-------------------------


[micropython]esp32 s3驱动st7789 1.69寸的240x280屏幕,注意初始化函数的评论 (共 条)

分享到微博请遵守国家法律