[原创] 【esp8266 micropython】之四 micropython 中断教程

Chocho   2017-3-7 10:07 楼主
外部中断mode:Pin.IN 输入 Pin.OUT 输出 value:输出电平 Pin.value([value])不带参数时是读取输入电平,带参数时是设置输出电平,参数是1/0. Pin.irq(*,trigger, handler=None) 中断 trigger,触发方式
Pin.IRQ_FALLING,下降沿
Pin.IRQ_RISING,上升沿
Pin.IN,上升下降沿 handler,回调函数 中断函数程序:
  1. from machine import Pin
  2. value=1
  3. counter=0
  4. def func(v):
  5. global value,counter
  6. counter+=1
  7. led.value(value)
  8. if(value == 0):
  9. value = 1
  10. else:
  11. value = 0
  12. print("IRQ ",counter)
  13. led = Pin(14, Pin.OUT)
  14. led.value(0)
  15. button = Pin(0, Pin.IN)
  16. button.irq(trigger=Pin.IRQ_FALLING, handler=func)
  17. while True:
  18. pass
这里呢,我就不用 怎么样找到端口号、怎样进入esp8266 micropython的编译环境了,不明白的可以去参考之前发布的几篇文档. 如下图我们在进入编译环境后,按照之前教的方法,把我们的中断程序粘贴进去. 之后按Ctrl+d完成粘贴并运行程序.此时输出了,这就代表我们的程序是没有问题的而且已经正在执行了,这个时候呢,在我们的esp8266开发板上,可以看到led灯处于熄灭的状态. 8GIJ186YJ)]8OURIJ@(]]JD.png file:///C:\Users\Dell\AppData\Roaming\Tencent\Users\1137717512\QQ\WinTemp\RichOle\8GIJ186YJ)]8OURIJ@(]]JD.png file:///C:\Users\Dell\AppData\Roaming\Tencent\Users\1137717512\QQ\WinTemp\RichOle\8GIJ186YJ)]8OURIJ@(]]JD.png 我们在板子的GPIO0口接一根杜邦线,此时用杜邦线的另一端去碰一下其他引脚,会有如下图的效果,同时没接触一下,led灯就会闪烁一下,counter数也会增加.这样我们就实现了中断的效果. 0[HIE_}7)$HDS2NG_LBF2QM.png 本帖最后由 Chocho 于 2017-3-7 17:59 编辑

回复评论 (4)

格式都乱了。
点赞  2017-3-7 17:13
中断的作用很多,楼主总结的挺好
小店 https://shop226970498.taobao.com/ 主营 Esp8266初级教程、源码等,适用于菜鸟
点赞  2017-5-6 15:59
ESP32模块 ESP8266模块一站式物联网解决方案、系统解决方案、云平台支持。全球最高性价比15986635722 刘R
点赞  2017-5-27 18:30
io中断要考虑去抖么??
点赞  2018-3-26 10:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复