前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ESP8266 SDK开发: 外设篇-GPIO中断检测

ESP8266 SDK开发: 外设篇-GPIO中断检测

作者头像
杨奉武
发布2020-02-19 10:50:37
1.5K0
发布2020-02-19 10:50:37
举报
文章被收录于专栏:知识分享

直接上代码

#include "gpio.h"

//设置GPIO0下降沿中断

代码语言:javascript
复制
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U , FUNC_GPIO0);//GPIO0做为普通IO使用
    GPIO_DIS_OUTPUT(0);//0:GPIO0    如果以前设置过GPIO为输出,则调用此函数关闭GPIO0输出
    PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO0_U);//GPIO0上拉输入

    _xt_isr_mask(1<<ETS_GPIO_INUM);    //关闭GPIO中断
    gpio_intr_handler_register(gpio0_intr_handler, NULL);//设置中断函数
    gpio_pin_intr_state_set(0, GPIO_PIN_INTR_NEGEDGE);//0:GPIO0        GPIO_PIN_INTR_NEGEDGE:下降沿触发
    _xt_isr_unmask(1 << ETS_GPIO_INUM); //使能GPIO中断

//GPIO0中断回调函数

代码语言:javascript
复制
void gpio0_intr_handler()
{
    uint32 gpio_status = GPIO_REG_READ(GPIO_STATUS_ADDRESS);//读取GPIO状态寄存器,获取中断信息
    GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, gpio_status);//清除中断信息
    if(gpio_status & (BIT(0)))//GPIO0产生的中断
    {
        if(!GPIO_INPUT_GET(0))//GPIO0是低电平    GPIO0确实是下降沿产生了中断
        {
            printf("GpioDown\r\n");
        }
    }
}

测试

按下按钮

扩展:配置GPIO4

//设置GPIO4下降沿中断

代码语言:javascript
复制
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U , FUNC_GPIO4);//GPIO4做为普通IO使用
    GPIO_DIS_OUTPUT(4);//4:GPIO4    如果以前设置过GPI4为输出,则调用此函数关闭GPIO4输出
    PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO4_U);//GPIO4上拉输入

    _xt_isr_mask(1<<ETS_GPIO_INUM);    //关闭GPIO中断
    gpio_intr_handler_register(gpio4_intr_handler, NULL);//设置中断函数
    gpio_pin_intr_state_set(4, GPIO_PIN_INTR_NEGEDGE);//4:GPIO4        GPIO_PIN_INTR_NEGEDGE:下降沿触发
    _xt_isr_unmask(1 << ETS_GPIO_INUM); //使能GPIO中断

//GPIO4中断回调函数

代码语言:javascript
复制
void gpio4_intr_handler()
{
    uint32 gpio_status = GPIO_REG_READ(GPIO_STATUS_ADDRESS);//读取GPIO状态寄存器,获取中断信息
    GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, gpio_status);//清除中断信息
    if(gpio_status & (BIT(4)))//GPIO4产生的中断
    {
        if(!GPIO_INPUT_GET(4))//GPIO4是低电平    GPIO4确实是下降沿产生了中断
        {
            printf("GpioDown\r\n");
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 直接上代码
  • 测试
  • 扩展:配置GPIO4
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档