Page 1 of 1

请问一个比较菜的问题:就是 示例“generic_gpio"中,中断打印问题

Posted: Mon Jun 19, 2023 10:07 am
by loveyond
为什么上升沿中断时gpio4 gpio5都会打印,而下降沿中断时只打印gpio4?
其实我也不算嵌入式菜鸟了,但是这也让我有点困惑。

这是它的部分demo代码 :
static void IRAM_ATTR gpio_isr_handler(void* arg)
{
uint32_t gpio_num = (uint32_t) arg;
xQueueSendFromISR(gpio_evt_queue, &gpio_num, NULL);
}

static void gpio_task_example(void* arg)
{
uint32_t io_num;
for(;;) {
if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) {
printf("GPIO[%"PRIu32"] intr, val: %d\n", io_num, gpio_get_level(io_num));
}
}
}

Re: 请问一个比较菜的问题:就是 示例“generic_gpio"中,中断打印问题

Posted: Wed Jun 21, 2023 2:25 am
by ESP_WangYX
供参考的排查点:
1)配置 GPIO 成功了吗?
2)信号发送成功了吗?
我建议不要通过打印来验证中断,可以通过建立一个 GPIO 反转实验来验证中断的响应。