尊敬的先生:,
我只是在开发工具包中设置了一个演示,当K1按下retargetuart中的debug msg时,但是一旦按下按钮,中断就会继续运行并且不会重置,我该怎么办?谢谢
代码如下:
静态void periph\u init(void)
...
printf(“hw\u wkup\u init\r\n”);
hw\u wkup\u init(空);
/*
*计数器阈值的默认值为0。在此之前更改此值很重要
*中断被注册,否则由于以下原因中断将被无限期触发
*计数器值等于阈值。
*/
硬件工作设置计数器阈值(1);
hw\u wkup\u寄存器\u中断(wkup\u intr\u cb,1);
硬件gpio\设置\引脚\功能(硬件gpio\端口\ 1、硬件gpio\引脚\ 6、硬件gpio\模式\输入\上拉、硬件gpio\功能\ gpio)//按钮K1
hw\u wkup \u configure \u pin(hw\u GPIO \u PORT \u 1,hw\u GPIO \u pin \u 6,true,hw\u wkup \u pin \u STATE \u LOW);
}
静态无效工作\u intr\u cb(无效)
{
hw_wkup_reset_interrupt();
printf(“唤醒中断触发\r\n”);
}
结果:
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
触发唤醒中断
.... x n次并挂起
设备:
你好,Ken Chong,
从您所报告的内容来看,我会说您不会在触发中断时重置中断,但我可以看到在回调中您调用了hw_wkup_reset_interrupt();因此,请检查设备是否确实在回调命中时重置中断,并检查触发中断的行的状态,也许这就是反复触发中断的原因。另外,hrp\u传感器的例子有一个如何实现外部中断功能的实现,所以请看一下这个例子。
谢谢你的对话