Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

micropython esp32 IO中断


from machine import Pin

import time

import machine


value = 1                     

counter = 0                   


def func(v):

  global value, counter

  time.sleep_ms(50)

  if(button.value() == 0):    #按键未按下

    return 

  while(button.value() == 1): #按键消抖并等待按键松开

    time.sleep_ms(100)

  time.sleep_ms(100)

  counter += 1

  led.value(value)            #设置LED

  value = 0 if value else 1   #翻转LED灯状态

  print("IRQ", counter)


try:

  led = Pin(25, Pin.OUT)      #将led引脚定义为输出

  led.value(0)

  button = Pin(27, Pin.IN)    #将button引脚定义输入

  button.irq(trigger=Pin.IRQ_RISING, handler=func)  #中断(上升沿触发)

  while True:

    pass

except:

  machine.disable_irq()      

实验效果

   采用上升沿触发,每按下按钮一次,数字LED灯都会开关切换,可以看到闪烁效果。



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.0082328319549561 seconds