stm32的输入捕获模式中的中断能不能设置成溢出中断,,,,,该模式捕获到边沿,放入寄存器的是次数还是时间间隔

2019-07-21 06:40发布



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
bucker
2019-07-21 10:31
你的表达比较模糊,不知你是需要获得捕捉脉冲边沿的时间还是记录脉冲的个数。我按照我的理解来解释下捕捉的概念。STM32可以根据边沿设定捕捉到一个脉冲边沿到来的时间,如果你需要计算脉冲的周期或边沿的间隔,就需要进行两次捕捉才能进行正确的计算。但是,有些时候周期太长会发生定时器溢出的情况,不考虑溢出的计算就是错误的。这样,就需要同时打开定时器溢出中断,在每个溢出中断发生时让一个变量加1,在每个捕捉中断时也要同时记下这个变量值,包含溢出次数的计算结果才是正确的。
例如:
设变量A为定时器溢出计数器,A在每次发生定时器溢出时加1,发生第一次捕捉时A的值为A1,捕捉寄存器值为B1,发生第二次捕捉时A的值为A2,捕捉寄存器值为B2
则:总时间间隔=(A2-A1)×65536+(B2-B1)
如果你需要记录脉冲次数,则需要将定时器设为外部时钟方式,如果计数值可能很大,也同样需要溢出中断来解决计数溢出的问题。假如你既需要测量捕捉间隔,有需要计数的话,就必须同时使用2个定时器来完成了。

一周热门 更多>