最近折腾新项目需要用到GPIO的中断来处理一些逻辑功能,翻看了官网的API开发文档,文档说的比较简单,只是对API方法做了一下解释说明,没有实际的完整例子,没办法,只能问度娘了。度娘果然啥都有,参考了以下这篇文章:ESP8266 GPIO中断学习_也许现在将来的博客-优快云博客这篇文章不但给出了实例代码,还对api进行了说明,写得非常好,大家完全可以参照这篇代码来做,因为我的项目需要用到两个gpio管脚中断,需要在这篇文章的基础上再添加一个管脚,这里就把我在添加过程中遇到的一些问题和难点再进一步说明一下。废话不说,先上代码,然后再来解释说明。
#include "osapi.h"
#include "user_interface.h"
#include "ets_sys.h"
#include "mem.h"
uint32 ICACHE_FLASH_ATTR user_rf_cal_sector_set(void)
{
enum flash_size_map size_map = system_get_flash_size_map();
uint32 rf_cal_sec = 0;
switch (size_map) {
case FLASH_SIZE_4M_MAP_256_256:
rf_cal_sec = 128 - 5;
break;
case FLASH_SIZE_8M_MAP_512_512:
rf_cal_sec = 256 - 5;
break;
case FLASH_SIZE_16M_MAP_512_512:
case FLASH_SIZE_16M_MAP_1024_10

本文总结了在ESP8266上使用GPIO中断的实践过程,包括遇到的问题和解决方法。作者参考了优快云博客上的实例代码,并在原有基础上增加了第二个GPIO管脚的中断功能。代码中,当GPIO4和GPIO5拉低时,会触发不同的中断输出。文中特别提到了PIN_FUNC_SELECT函数的参数含义和配置,以及管脚设置和上拉使能的重要性。文章适合需要使用ESP8266 GPIO中断功能的开发者参考。
最低0.47元/天 解锁文章
5995

被折叠的 条评论
为什么被折叠?



