关于通过定时器的SR寄存器问题

2019-10-16 05:06发布

昨天,按正点原子官方代码实现了输入捕获实验,发现了一个很奇怪的BUG。首先,在手册中知道,定时器在初始化之后会挂起一个更新中断,所以我在TIM_TimeBaseInit()函数之后,写了TIM5->SR = 0; 然后,在TIM_Cmd(TIM5, ENABLE);之后,SR寄存器就立马变成了0x1d,即只有输入捕获通道1(这是我配置输入捕获的通道)没有挂起中断,其他三个通道和更新中断都挂起了,导致了我的定时器5不断进入中断,除非把更新中断关闭了。奇怪的地方在于:1、为什么SR的值会立马变成0x1D;2、为什么我不管怎么对SR清0,它在下个语句后就会立马变成0x1D;  原子的官方代码也是有这个问题。一直没有想到原因,望大牛给一下解释!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。