08、W601的外部中断
一、W601的外部中断
GPIO 模块提供输入信号检测功能。通过配置 GPIO 中断相关的寄存器可以实现高低电平检测以及上下沿跳变检测。当对应 IO 的输入信号符合预先设置的条件,比如说高电平触发或者上升沿触发等,即会触发 GPIO 中断,上报给 MCU 处理。MCU 需要清除相应的中断状态,以免中断误触发。
二、配置外部中断
- 配置GPIO端口为输入
- 配置中断的触发方式
- 上升沿触发
- 下降沿触发
- 双边沿触发
- 使能中断
- 中断服务函数中判断中断标志位以及清除中断标志位
三、代码实现
以按键作为实例,触发按键的外部中断我们打印一下输出
void keyup_callback(void *arg);
void keyup_exti(void *arg)
{
tls_gpio_cfg(WM_IO_PA_08,WM_GPIO_DIR_INPUT,WM_GPIO_ATTR_FLOATING);
tls_gpio_isr_register(WM_IO_PA_08,keyup_callback,NULL);
tls_gpio_irq_enable(WM_IO_PA_08,WM_GPIO_IRQ_TRIG_RISING_EDGE);
}
void keyup_callback(void *arg)
{
if(tls_get_gpio_irq_status(WM_IO_PA_08))
{
tls_clr_gpio_irq_status(WM_IO_PA_08);
log_i("keyup is succceed");
}
}
就是这么简单