这里的消抖不能紧紧靠上升沿中断,还需要定时器时器帮助,上升沿中断来的时候,打开下降沿中断,同时打开定时器开始计时,接着,若是定时器先触发,那么按键有效,若下降沿先触发,此次按键需要消除,原理是这样。
但只是一个按键检测,要求不高的场合使用时间片循环就好了,没必要消耗那么多硬件资源。当然,上面采用硬件资源来消抖是最严谨。
你要搞清楚一个概念,输入捕获的中断和counter的溢出中断是两种类型的中断,当counter溢出时,如果使能了溢出中断,则会触发溢出中断,不会触发通道的捕获中断,通道的捕获中断只有当该通道有信号触发(比如上升沿,下降沿,或相应电平)时才会产生中断标志置位,中断发生。
再看看自己的代码吧,PE0 是下降沿,PE1 是上升沿,怎么触发!!
测试情况如下: 1.允许更新中断 允许触发中断 定时器初始化后,第一次启动定时器5s定时,立刻进入中断,以后再启动,5s后进入中断; 2.允许更新中断 禁止触发中断 定时器初始化后,第一次启动定时器5s定时,立刻进入中断,以后再启动,5s后进入中断;同情况1; 3.禁止更新中断 允许触发中断 定时器初始化后,启动定时器5s定时,无法进入中断;
电压比较器和单片机是否共地。再不行看看信号发生器输出方波看看。
有个外设模块是capture捕获功能的,初始化把这个外设按照你的要求来配置就能捕获上升沿和下降沿之间的时间。
本文标签:stm32中断上升沿