打印

【请教】关于STM32定时器TIM1产生更新中断的问题

[复制链接]
3212|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Juuulien|  楼主 | 2012-8-17 11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的设想是使能TIM1更新中断,在服务程序里变量 count 自增,在调试过程中发现了这个问题,所以来请教一下,先谢谢各位。

主函数如上所示,我的设想就是在count增加到20时失能TIM1,在隔一小段时间后再使能TIM1,这么说来count的值应该在0-20之间变化
当服务程序里清标志位是
TIM_ClearFlag(TIM1, TIM_FLAG_Update);
或者是

TIM_ClearITPendingBit(TIM1, TIM_FLAG_Update);
时是可行的

count的值在0-20间变化

但是如果是

TIM1->SR&=~(1<<0);
count的值则是在0-0xffff中变化:我的问题就是
TIM1->SR&=~(1<<0);
与下面两个
TIM_ClearFlag(TIM1, TIM_FLAG_Update);

TIM_ClearITPendingBit(TIM1, TIM_FLAG_Update);
有什么差别


我猜想
TIM1->SR&=~(1<<0);
并没有清除中断标志位,所以程序一直在中断,所以count的值才会在0-0xffff范围内。
但是TIMx_SR的UIF位应该就是更新标志位,跟 TIM_FLAG_Update 有什么差别呢?


再次拜谢!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

0

粉丝