OpenEdv-开源电子网

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

if(TIM3->SR&0X0001)

[复制链接]

21

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2015-12-4
在线时间
10 小时
发表于 2015-12-12 14:17:23 | 显示全部楼层 |阅读模式
5金钱
在定时器中断中,我的中断处理函数如下:
=================================
void TIM3_IRQHandler(void){

/*
中断处理函数:
*/

/*思考:为何加了这条语句才行?不加不行?*/
// if(TIM3->SR&0X0001){
PFout(8) = !PFout(8);
// }


/*
在中断里边最后记得清中断标志:
*/
TIM3->SR &= ~(1 << 0);


====================================

在上述中断函数中,若没有加if(TIM3->SR&0X0001)这条语句,
那么蜂鸣器始终不会响,若加了if(TIM3->SR&0X0001)这条语句,
那么蜂鸣器才会如程序中所示,正常工作;理论上,不加这条if语句,
蜂鸣器也会隔一段时间响一次的,但看到的 事实是蜂鸣器根本不会响;
各位,有遇到过这种情况么?

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

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2015-12-12 14:35:32 | 显示全部楼层
这也是STM32定时器让人纠结的地方,以后用时就一定要加一条判断语句!和51的定时器中断相比较有点让人不理解!
回复

使用道具 举报

21

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2015-12-4
在线时间
10 小时
 楼主| 发表于 2015-12-12 14:52:13 | 显示全部楼层
回复【2楼】烟酒不沾:
---------------------------------
今天搞了我大半个中午,哈哈,之后加上这条语句,就行得通了,这个程序理论上不加这条if语句也是可以的,
难道这是STM32的一个Bug么?
回复

使用道具 举报

6

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2015-6-1
在线时间
126 小时
发表于 2015-12-13 11:33:29 | 显示全部楼层
我记得好像是:因为产生中断会使标志位置位,因此进入中断后要清除该标志位,否则一直中断。
 sr&0x0001应该可以清除标志位
回复

使用道具 举报

21

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2015-12-4
在线时间
10 小时
 楼主| 发表于 2015-12-13 16:57:32 | 显示全部楼层
回复【4楼】Watmin:
---------------------------------
在我中断函数的最后的一句:TIM3->SR &= ~(1 << 0);才是清中断哦,
前面if()那个只是判断中断
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-12-14 23:48:41 | 显示全部楼层
用delay代替if判断试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-9-27
在线时间
8 小时
发表于 2018-10-7 15:44:26 | 显示全部楼层
正点原子 发表于 2015-12-14 23:48
用delay代替if判断试试。

我换成延迟10ms也行,应该是硬件上的问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 07:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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