Example 9: external interrupt
About 3 min
Example 9: external interrupt
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Overview
- Wiring
- JSON Configuration Example
- PeriphExec Linkage
- Notes
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
示例9:外部中断
实验概述
通过 GPIO 中断检测外部信号变化(按键按下、传感器触发等),当检测到上升沿、下降沿或电平变化时立即触发事件。相比轮询方式,中断响应更快且不占用 CPU 资源。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| KEY1 | GPIO14 | 按键/传感器(下降沿触发) |
任何支持中断的 GPIO 引脚均可使用,ESP32 几乎所有 GPIO 都支持中断。
JSON 配置示例
{
"peripherals": [
{
"id": "int_falling",
"name": "下降沿中断",
"type": 19,
"enabled": false,
"pins": [14],
"params": {}
},
{
"id": "int_rising",
"name": "上升沿中断",
"type": 18,
"enabled": false,
"pins": [27],
"params": {}
},
{
"id": "int_change",
"name": "电平变化中断",
"type": 20,
"enabled": false,
"pins": [26],
"params": {}
}
]
}外设执行联动
场景:中断触发报警(事件触发)
功能:当检测到下降沿中断(按键按下)时,蜂鸣器响0.5秒
Web界面配置步骤
步骤1:确保已配置蜂鸣器外设
- 外设ID:
buzzer_gpio - 类型:GPIO输出
步骤2:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
中断触发报警 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤3:配置触发器(事件触发)
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 事件触发 响应系统事件 事件类型 100GPIO中断事件 事件来源 int_falling下降沿中断外设ID
步骤4:配置动作(需要3个动作)
动作1:蜂鸣器响
- 点击 添加动作 按钮
- 填写:
- 动作类型:选择 高电平
- 目标外设:选择
buzzer_gpio
动作2:延时500ms
- 再次点击 添加动作 按钮
- 填写:
- 动作类型:选择 延时
- 动作参数:
500(毫秒)
动作3:蜂鸣器停
第三次点击 添加动作 按钮
填写:
- 动作类型:选择 低电平
- 目标外设:选择
buzzer_gpio
点击 保存 按钮
执行流程:
按键按下(下降沿)
↓
触发中断事件
↓
蜂鸣器响(HIGH)
↓
延时500ms
↓
蜂鸣器停(LOW)中断类型说明
| 中断类型 | 触发条件 | 适用场景 | type值 |
|---|---|---|---|
| 上升沿中断 | 低→高电平变化 | 按键释放、传感器触发 | 18 |
| 下降沿中断 | 高→低电平变化 | 按键按下、传感器触发 | 19 |
| 电平变化中断 | 任意电平变化 | 监测信号变化 | 20 |
注意事项
- 消抖:机械按键会产生抖动,FastBee 内部有 50ms 消抖保护
- 中断安全:中断回调中不能执行耗时操作,FastBee 使用事件队列异步处理
- 引脚限制:GPIO6-11(SPI Flash)不可用于中断
- 电平要求:ESP32 GPIO 为 3.3V 电平,5V 信号需分压
- 唤醒功能:某些引脚(RTC GPIO)支持深度睡眠中断唤醒
