OpenEdv-开源电子网

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

stm32f103执行完清除更新中断的语句后,直接跳到中断结尾,不执行判断捕获输入中断是否发生的if语句

[复制链接]

9

主题

22

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-12-29
在线时间
13 小时
发表于 2016-12-29 10:09:19 | 显示全部楼层 |阅读模式
1金钱
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)
        {       
                TIM_ClearITPendingBit(TIM3,TIM_IT_Update)
        }
   else if(TIM_GetITStatus(TIM3,TIM_IT_CC1)==SET)
        {
               
执行完红色语句后,不执行蓝色语句,直接跳到中断结尾去了。硬件输入端没问题,有信号输入。

最佳答案

查看完整内容[请看2#楼]

说明判断语句不符合!检查你的状态判断是否正确
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-29 10:09:20 | 显示全部楼层
说明判断语句不符合!检查你的状态判断是否正确
回复

使用道具 举报

9

主题

22

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-12-29
在线时间
13 小时
 楼主| 发表于 2016-12-29 10:19:11 | 显示全部楼层
        TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;  
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling;  
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;  
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;  
  TIM_ICInitStructure.TIM_ICFilter = 0x1;  

  TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);  
  TIM_Cmd(TIM3, ENABLE);  
  TIM_ITConfig(TIM3, TIM_IT_CC1 | TIM_IT_CC2, ENABLE);  
回复

使用道具 举报

11

主题

94

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-12-12
在线时间
55 小时
发表于 2016-12-29 10:19:49 | 显示全部楼层
你把else去掉试试,else if的意思本身就是不满足上一个if条件才进入本次条件判断,如果上一个if的条件满足了,那么就不会执行else if的条件判断了。
回复

使用道具 举报

9

主题

22

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-12-29
在线时间
13 小时
 楼主| 发表于 2016-12-29 10:21:25 | 显示全部楼层
不死鸟 发表于 2016-12-29 10:19
你把else去掉试试,else if的意思本身就是不满足上一个if条件才进入本次条件判断,如果上一个if的条件满足 ...

不行,还是不执行
回复

使用道具 举报

6

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-7-23
在线时间
21 小时
发表于 2016-12-29 10:22:05 | 显示全部楼层
if 和 else if 的意思不就是只能执行其中的一个吗?

你要想都执行就得用两个if 判断才可以。
回复

使用道具 举报

11

主题

94

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-12-12
在线时间
55 小时
发表于 2016-12-29 10:37:46 | 显示全部楼层
madao14751 发表于 2016-12-29 10:21
不行,还是不执行

调换一下两个if的顺序,看看反过来会不会执行。
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7535
金钱
7535
注册时间
2016-11-30
在线时间
641 小时
发表于 2016-12-29 13:56:29 | 显示全部楼层
TIM_ClearITPendingBit(TIM3,TIM_IT_Update)为啥没有分号也能编译过去?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-28 03:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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