OpenEdv-开源电子网

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

请教一下大家,定时器中断进来后退不出来了,这是我的代码,不知道什么原因,我清除标志位了啊

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2021-11-4 16:56:36 | 显示全部楼层 |阅读模式
10金钱
请教一下大家,定时器中断进来后退不出来了,这是我的代码,不知道什么原因,我清除标志位了啊
  1. //¶¨ê±Æ÷3ÖD¶Ï·tÎñ3ìDò
  2. void TIM3_IRQHandler(void)   //TIM3ÖD¶Ï
  3. {
  4.         if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì2éÖ¸¶¨μÄTIMÖD¶Ï·¢éúóë·ñ:TIM ÖD¶ÏÔ′
  5.                 {
  6.                 TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //Çå3yTIMxμÄÖD¶Ï′y′|àíλ:TIM ÖD¶ÏÔ′
  7.                 LED1=!LED1;
  8.                 }
  9.                 if(flag2==1)
  10.                 {
  11.                  sec++;
  12.         if(sec==ghj)
  13.             {
  14.                                                         EN1=0;
  15.                                                         sec=0;
  16.                                                         ghj=0;

  17.                                                         BEEP_ON();
  18.                                                         BEEP_ON();
  19.                                                         BEEP_ON();
  20.                                                         flag2=0;
  21.                          TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
  22.                                                                                 //        TIM_Cmd(TIM3, DISABLE);       
  23.             }   
  24.                                         }                                               
  25. }
复制代码
现在是串口发给单片机指令,进入中断后只能运行一次,再发指令就没反应了

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

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2021-11-4 22:52:08 | 显示全部楼层
退不出来是什么意思 用debug看了吗?设个断点 然后看看TIM3的中断标志寄存器有没有变化
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2021-11-5 02:05:54 | 显示全部楼层
仿真看下死在那里?
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-11-5 08:23:05 | 显示全部楼层
正点原子 发表于 2021-11-5 02:05
仿真看下死在那里?

在最后一句,停止了,但是逻辑没什么错啊
回复

使用道具 举报

3

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
559
金钱
559
注册时间
2018-10-3
在线时间
107 小时
发表于 2021-11-5 08:29:59 | 显示全部楼层
有可能开了定时器其他中断,然后没有清掉。最好仿真看看进中断后,哪些中断没清。
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8676
金钱
8676
注册时间
2020-5-11
在线时间
4152 小时
发表于 2021-11-5 13:34:22 | 显示全部楼层
TIM_ClearITPendingBit你用了两次,去掉下面那个看看。
专治疑难杂症
回复

使用道具 举报

13

主题

643

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2432
金钱
2432
注册时间
2019-12-28
在线时间
527 小时
发表于 2021-11-5 14:08:55 | 显示全部楼层
可以对比下原子的例程看看
回复

使用道具 举报

2

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
509
金钱
509
注册时间
2016-11-16
在线时间
111 小时
发表于 2021-11-5 14:51:08 | 显示全部楼层
仿真看下寄存器的标志位
回复

使用道具 举报

13

主题

645

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2009
金钱
2009
注册时间
2021-4-16
在线时间
512 小时
发表于 2021-11-5 15:22:20 | 显示全部楼层
不建议把中断标志位放条件语句里,除非你能确保肯定进得去。建议拿出来放最后面。
回复

使用道具 举报

0

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2021-5-17
在线时间
65 小时
发表于 2021-11-10 18:30:30 | 显示全部楼层
清除标志位的库函数是定时器寄存器SR取反,标志位清了两次,相当于没请
回复

使用道具 举报

9

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2021-6-21
在线时间
47 小时
发表于 2021-11-11 08:41:14 | 显示全部楼层
你这个TIM的中断标志位对了吗,需要仔细看一下
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-12-11 09:30:11 | 显示全部楼层
LcwSwust 发表于 2021-11-5 13:34
TIM_ClearITPendingBit你用了两次,去掉下面那个看看。

试了,没有用
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-12-11 09:30:43 | 显示全部楼层
ylsing 发表于 2021-11-10 18:30
清除标志位的库函数是定时器寄存器SR取反,标志位清了两次,相当于没请

屏蔽最后一条也没用
回复

使用道具 举报

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
发表于 2021-12-11 11:47:15 | 显示全部楼层
进不去中断难道不是因为清了标志位才进不去吗?没清标志位会一直进中断。
你看看是不是别的地方清了中断。
我猜是你这个中断刚产生,然后优先级更高的中断也产生了,然后更高级的中断把这个中断的标志位也清了。导致这个中断进不去了
回复

使用道具 举报

8

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2019-7-14
在线时间
85 小时
发表于 2021-12-11 16:00:24 | 显示全部楼层
你是不是定时里执行的程太多了。时间超过定时时间了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 05:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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