stm32定时器的输出比较功能如何理解

2019-08-14 06:57发布

STM32定时器之输出比较功能:按照PDF的描述,输出比较是当计数器的值与比较寄存器的值匹配时,产生事件。其实我不太明白,这个模块有什么用,要实现这样的功能,使用定时器,在定时器中断里面计数,外加一个if语句就能实现所谓的"将计数值与比较值进行匹配"。而输出比较功能,匹配事件发生的时候,可以触发中断,同样的,我编程也可以实现啊,我把中断程序放在if语句里面不就可以了嘛。
就是说,定时器中断进行计数,用if语句判断计数匹配到达没有,并且在if语句里面写程序(这个程序就是输出比较事件发生时,进入中断里面的中断程序)。

按照这样的思想也能实现pdf中描述的功能啊,那为什么st要多弄一个所谓的输出比较呢?请版主和各位朋友解答一下,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
林春霞
1楼-- · 2019-08-15 22:51
xkwy 发表于 2016-6-6 12:26
是这样的,所以新版的STM32系列(如F4,F0等),GPIO采用了复用矩阵,合理配置矩阵,就能让所有模块、引 ...

xkwy前辈,无意在另外一个帖子下看到您的回复。刚好我也遇到了类似的问题。就是这个定时器一打开就先进入一次中断。究竟这个原因是怎么造成的?我觉得是因为打开定时器的时候,stm32会将0放入定时器的计数单元CNT,而CNT当等于0或者等于ARR的时候,是会产生更新事件的,这个更新事件就会触发中断。定时器刚工作的时候,将0放入CNT进行向上计数的同时,CNT=0也触发了中断。是不是这样子的呢?
xkwy
2楼-- · 2019-08-16 01:59
林春霞 发表于 2016-6-6 16:43
xkwy前辈,无意在另外一个帖子下看到您的回复。刚好我也遇到了类似的问题。就是这个定时器一打开就先进入 ...

不清楚,STM32的好多模块中断在打开的一瞬间都会立即进入一次,比如串口

我之前的回帖中有解决办法,就是寄存器配置的先后问题
jorry
3楼-- · 2019-08-16 05:43
学习了谢谢!!!

一周热门 更多>