ESP8266-12F 中断
外部中断:
基于ESP8266的NodeMcu的数字IO的中断功能是通过attachInterrupt,detachInterrupt函数所支持的。除了D0/GPIO16,中断可以绑定到任意GPIO的引脚上【D0-D10】。所支持的标准中断类型有:CHANGE(改变沿,电平从低到高或者从高到低)、RISING(上升沿,电平从低到高)、FALLING(下降沿,电平从高到低)
attachInterrupt(pin, function, mode); 设置触发中断的引脚
pin:要设置中断编号,注意,这里不是引脚编号
function:中断发生时运行的函数, 这个函数不带任何参数,不返回任何内容
Interrupt type/mode:它定义中断被触发的条件方式
CHANGE:改变沿,引脚电平从低变为高或者从高变为低时触发中断。
RISING:上升沿,引脚电平从低变为高时触发中断。
FALLING:下降沿,引脚电平从高变为低时触发中断
返回值: 无
detachInterrupt(pin); 取消指定引脚的中断
pin:中断号
返回值: 无
digitalPinToInterrupt(pin);获取指定引脚的中断号
pin:要获取中断号的GPIO引脚
返回值: 中断号
引脚对应的中断号:
D1:5 D2:4 D4:2 D5:14 D6:12 D7:13 D8:15
例子一:
将NodeMcu的D2引脚设置为上升沿中断。在D2上外接一个按键,按键通过电阻下拉到地。当发生中断的时候,我们在串口监视器上打印“Hello ESP8266”
void setup() { Serial.begin(115200);//设置串口波特率 attachInterrupt(digitalPinToInterrupt(D2), InterruptFunc, RISING);//设置中断号、响应函数、触发方式 } void loop() { delay(2000); } void InterruptFunc(){ //中断响应函数 Serial.println("Hello ESP8266"); }
不知道为何串口打印的数据 不对 ???????????
天子骄龙
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)