OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2382|回复: 2

定时器时立即进入一次中断程序问题

[复制链接]

7

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-1-14
在线时间
32 小时
发表于 2020-3-10 17:18:09 | 显示全部楼层 |阅读模式
配置STM32定时器时,定时器中断使能、定时器使能、清除更新中断标志位,三者不同顺序程序执行时有不同效果,具体如下:
(1)不会立即进入更新中断程序。
TIM_ClearITPendingBit(TIM1, TIM_IT_Update); //清除更新中断请求位
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); //使能定时器1更新中断
TIM_Cmd(TIM1, ENABLE);                   //启动定时器
(2)不会立即进入更新中断程序。
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
TIM_Cmd(TIM1, ENABLE);
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断
(3)不会立即进入更新中断程序。
TIM_Cmd(TIM1, ENABLE);
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断
(4)立即进入更新中断程序。
TIM_Cmd(TIM1, ENABLE);
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
(5)立即进入更新中断程序。
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
TIM_Cmd(TIM1, ENABLE);  
(6)立即进入更新中断程序。
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断
TIM_Cmd(TIM1, ENABLE);
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
参考:https://blog.csdn.net/YGT666/article/details/79586390


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14408
金钱
14408
注册时间
2018-8-3
在线时间
1156 小时
发表于 2020-3-10 17:37:26 | 显示全部楼层
回复 支持 反对

使用道具 举报

9

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
971
金钱
971
注册时间
2020-1-6
在线时间
124 小时
发表于 2020-3-12 13:14:41 | 显示全部楼层
总结一句话就是:中断标志位的清除必须在使能之前,否则就会出现定时器一开就进入中断的现象。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 08:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表