OpenEdv-开源电子网

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

搞不懂了if,怎么不能判定

[复制链接]

16

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2019-9-1
在线时间
61 小时
发表于 2019-12-16 07:36:43 | 显示全部楼层 |阅读模式
这是一个中断程序,要求就是,中断超过3次以上执行if里面的语句,里面的biaozhi1,每中断一次加1,超过3次,执行if里面的语句,现在的问题是,中断一次就执行了if语句,更怪的的是,无论biaozhi1是大于3,小于3,还是等于3,if里面的语句都执行,真是搞不懂了,哪位大神给看看,哪里出了问题,这个中断里面,一共有三个这样的程序,其他两段都正常,唯独这一段不行
void EXTI9_5_IRQHandler(void)
{
//上行传感器中断                                                                                                                                                       
if((EXTI_GetITStatus(EXTI_Line9) != RESET)&&(mark==1))
{
         TIM_Cmd(TIM2, ENABLE);  //开定时器2//开定时器
         biaozhi1++;
       
//         delay_ms(20);//消抖
         if(biaozhi1>3)
         {
                          youxianchu=!youxianchu;
                         TIM_Cmd(TIM2, DISABLE);  //关闭定时器2,取消误触发
                        TIM_SetCounter(TIM2, 0);//定时器2清零
                  TIM_SetCounter(TIM3, 0);//定时器3清零                       
                        TIM_Cmd(TIM3, ENABLE);  //使能TIM3        开定时器3.延时3分钟
                        key=2;
         }
        EXTI_ClearITPendingBit(EXTI_Line9);  //清除EXTI9线路挂起位         
}
else EXTI_ClearITPendingBit(EXTI_Line9);  //清除EXTI9线路挂起



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

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2019-5-8
在线时间
46 小时
发表于 2019-12-16 09:50:46 | 显示全部楼层
进入if后要加上这句:biaozhi1=0;
这些计数的if处理,一定要记得在进入判断后立刻置0,我被这种低级错误坑过好多次了
回复 支持 1 反对 0

使用道具 举报

5

主题

424

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1020
金钱
1020
注册时间
2014-9-4
在线时间
199 小时
发表于 2019-12-16 17:50:58 | 显示全部楼层
顶一顶
回复 支持 反对

使用道具 举报

16

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2019-9-1
在线时间
61 小时
 楼主| 发表于 2019-12-16 19:57:23 | 显示全部楼层
o0cg 发表于 2019-12-16 09:50
进入if后要加上这句:biaozhi1=0;
这些计数的if处理,一定要记得在进入判断后立刻置0,我被这种低级错误坑 ...

初始化就等于零了,一共有3个中断线的,另两个正常,就这一个不正常
回复 支持 反对

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-12-17 10:19:18 | 显示全部楼层
修改下编译器优化等级试试,或者单步调试看看if语句判断的值是不是改变了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 05:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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