国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

esp32 s3+lv_micropython物理鍵盤響應(yīng)程序

2023-09-01 17:30 作者:車科技2020  | 我要投稿

#目前esp32 s3+lv_micropython v1.91無法使用lvgl的一些宏定義,一使用就會程序出錯,只能根據(jù)文檔把宏定義改為對應(yīng)的數(shù)字,如LV_KEY_NEXT等定義(對應(yīng)的是數(shù)字9)都不能用,或者它改了名字我用不了。這里記錄一下吧。我使用gpio的p0來做實驗。


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

from espidf import VSPI_HOST

import time

import machine

print(str(machine.freq()))

machine.freq(240000000)

print(str(machine.freq()))

#gc.collect()

#0.這個是關(guān)鍵的初始化函數(shù)

disp=st7789(

? ? mosi=13,

? ? clk=14,

? ? cs=11,

? ? dc=8,

? ? rst=9,

? ? mhz=80,

? ? spihost=VSPI_HOST,

? ? factor=16,#這個參數(shù)一定要設(shè)置為16,這樣才能支持240x280的屏幕

? ? #hybrid=True,

? ? width=240,

? ? height=280,

? ? start_x=0,

? ? start_y=20,

? ? double_buffer=1,

? ? rot=0,

? ? #invert=True,

? ? #half_duplex=False,

? ? #initialize=True

? ? )

def set_value(indic, v):

? ? meter.set_indicator_value(indic, v)

# 1. 創(chuàng)建顯示screen對象。將需要顯示的組件添加到這個screen才能顯示

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

fs_drv = lv.fs_drv_t()

fs_driver.fs_register(fs_drv, 'S')



#先定義界面元素

scr = lv.scr_act()

btn = lv.btn(scr)

btn1=lv.btn(scr)

btn2=lv.btn(scr)

label =lv.label(btn)

label1 =lv.label(btn1)

label2 =lv.label(btn2)


#btn.set_pos(10, 10)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Set its position

btn.set_size(120, 50)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Set its size

btn.align(lv.ALIGN.TOP_MID,0,20)

#btn1.set_pos(10, 80)? ?

btn1.set_size(120, 50)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Set its size

btn1.align(lv.ALIGN.CENTER,0,0)


btn2.set_size(120, 50)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Set its size

btn2.align(lv.ALIGN.BOTTOM_MID,0,-20)


label.set_text("Enter")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# Set the labels text

label.center()

label1.set_text("Cancel")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# Set the labels text

label1.center()

label2.set_text("Err")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# Set the labels text

label2.center()


def keypad_getkey() -> int:

? ? return (p0.value())


def keypad_read(indev_drv,data) -> int:

? ? ? ? k0=Pin(0, Pin.IN, Pin.PULL_UP)

? ? ? ? if (k0.value() == 0):

? ? ? ? ? ? data.state = 1 #key pressed

? ? ? ? ? ? data.key = 9 #next obj

? ? ? ? else:

? ? ? ? ? ? data.state = 0 #key released

? ? ? ? #可以看到lvgl會自動進入這個函數(shù)讀取鍵盤的數(shù)值的【關(guān)鍵】

? ? ? ? #程序貌似已經(jīng)做了消抖,每10ms檢測一次鍵盤作出響應(yīng)

? ? ? ? #data.state = lv.INDEV_STATE.PRESSED

? ? ? ? #data.key = lv.KEY_ENTER[8]




def keypad_init():

? ? Pin(0, Pin.IN, Pin.PULL_UP)

? ??

keypad_init()


indev_drv=lv.indev_drv_t()

indev_drv.init()

indev_drv.type=lv.INDEV_TYPE.KEYPAD

indev_drv.read_cb = keypad_read

indev=indev_drv.register()


print(indev_drv)


indev.enable(True)


print(indev)


g=lv.group_create()


print(g)


indev.set_group(g)


g.add_obj(btn2)

g.add_obj(btn)

g.add_obj(btn1)


g.focus_prev()#有反應(yīng)

g.focus_next()

esp32 s3+lv_micropython物理鍵盤響應(yīng)程序的評論 (共 條)

分享到微博請遵守國家法律
台南县| 嘉兴市| 陇川县| 岳西县| 牟定县| 嘉黎县| 吴忠市| 香格里拉县| 阿拉善左旗| 宁远县| 共和县| 浠水县| 长丰县| 永城市| 彰武县| 杭锦旗| 日喀则市| 九龙县| 平远县| 永嘉县| 福安市| 张家界市| 巴林左旗| 岐山县| 金乡县| 庆云县| 眉山市| 绥中县| 会理县| 尤溪县| 稷山县| 什邡市| 鞍山市| 小金县| 满洲里市| 苍南县| 鄱阳县| 金坛市| 乌鲁木齐县| 剑阁县| 隆尧县|