(五)ESP32基于MicroPython平台——IO口中断触发

在这个示例中,我们首先定义了一个LED引脚,并使用Pin类初始化它。然后,我们定义了一个中断处理函数**on_interrupt** ,当GPIO引脚2的电平从低变高时触发中断。在中断处理函数中,我们切换LED的状态并翻转LED的输出。接下来,我们使用Pin类初始化GPIO引脚2,并将其配置为输入模式,启用内部上拉电阻。最后,我们使用**attach_interrupt**函数将中断处理函数与GPIO引脚2关联起来,并设置触发模式为下降沿触发。在主循环中,我们简单地延时1秒,以便观察LED的状态变化。

当GPIO引脚2的电平从高变低时,MicroPython会自动调用中断处理函数on_interrupt,从而触发LED状态的切换。通过这种方式,我们可以使用ESP32的GPIO引脚实现简单的中断IO触发功能。

python 复制代码
from machine import Pin    
import time    

led_state = 0

# 定义LED引脚  
led = Pin(4, Pin.OUT)  

# 定义IO口中断引脚    
pin = Pin(2, Pin.IN, pull=Pin.PULL_UP)
help(Pin)
    
# 定义中断处理函数,接受一个参数event    
def on_interrupt(event):
    global led_state  
    led_state = not led_state  # 切换LED状态  
    led.value(led_state)  # 翻转LED状态  
    print("Interrupt triggered!")  
    # 在这里编写中断处理逻辑    
    
# 配置IO口中断,触发条件为下降沿触发    
pin.irq(trigger=Pin.IRQ_RISING, handler=on_interrupt)    
    
# 主循环    
while True:    
    time.sleep(1)  # 延时1秒  
    print("LED状态:",led_state)
相关推荐
GreenGoblin13 分钟前
12.DSP学习记录之SCI
单片机·dsp开发·电机控制
爱喝纯牛奶的柠檬1 小时前
基于STM32的GPS NMEA解析驱动设计与实现
stm32·单片机·嵌入式硬件
v先v关v住v获v取1 小时前
茶树修剪机结构设计2张cad+设计说明书+三维图
科技·单片机·51单片机
大志出奇迹2 小时前
STM32常用变量类型位数及取值范围
stm32·单片机·嵌入式硬件
LCG元2 小时前
STM32项目实战:基于STM32F103的智能循迹避障小车
stm32·单片机·嵌入式硬件
v先v关v住v获v取3 小时前
NEXUS卡丁车前悬挂控制臂的结构建模与多工况受力分析5张cad+三维图+设计说明书
科技·单片机·51单片机
luoshanxuli20103 小时前
ESP-IDF 简介
嵌入式硬件·物联网·系统架构
GodKK老神灭3 小时前
SWD读取AP寄存器完整流程
单片机·keil
羽获飞3 小时前
从零开始学嵌入式之STM32——27.基于STM32F103C8T6MCU的寄存器方式实现按键调整PWM占空比,调整输出功率
stm32·单片机·嵌入式硬件
学嵌入式的小杨同学3 小时前
STM32 进阶封神之路(十五):DHT11 单总线实战 —— 温湿度检测从时序解析到代码落地(库函数 + 寄存器)
vscode·stm32·单片机·嵌入式硬件·mcu·智能硬件·pcb工艺