基础实验----触摸屏按钮

1、我们需要做的是生成触摸按钮,实现触摸控制LED灯状态变换。先来看构造函数

2、编写相应的程序

from tftlcd import LCD32
from touch import XPT2046
from machine import Timer,Pin
import gui,time

#定义常用颜色
BLACK = (0,0,0)
WHITE = (255,255,255)
RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)
ORANGE = (0xFF,0x7F,0x00) #橙色

#LCD初始化
d = LCD32(portrait = 1)
d.fill(WHITE)


#触摸屏初始化
t = XPT2046()

LED = Pin(46,Pin.OUT)
state = 0

#定义两个按键和回调函数
def fun1(B1):
    #LED灯状态翻转
    global state
    state = not state
    LED.value(state)
    
def fun2(B2):
    print('Button is pressed!')
    
B1 = gui.TouchButton(80,50,80,50,BLUE,'LED1',WHITE,fun1)
B2 = gui.TouchButton(80,120,80,50,RED,'Button',WHITE,fun2)

#定时器用于扫描按钮触发事件
tim_flag = 0

def count(tim):
    global tim_flag
    tim_flag = 1
    
tim = Timer(1)
tim.init(period=20,mode=Timer.PERIODIC,callback=count)

while True:
    #执行按钮触发的任务
    if tim_flag == 1:
        t.tick_inc()
        gui.task_handler()
        tim_flag = 0

3、显示效果如下:

点击LED1按钮,led灯会亮

点击Button按钮会打印Button is pressed

注意:Micropython 所有中断回调函数都不支持新的内存分配语句,否则会 报错,因此可以通过定义全局变量(global),在回调函数修改,然后在主循环函 数判断然后做出相应的控制。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_41392061

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值