发帖 |
[问答] 新手求助 串口中断里面全局变量失效问题
2018-2-10 10:25:37  1244 新手 求助 串口 中断 全局变量
收藏 1 收藏 推荐 0 推荐
分享
我的cnt是一个开在main外的全局变量 就是想接受三次发送一次
在中断中写可以实现 但是把那部分放到main里面就一直不发送 很奇怪。
就是把while1里面内容注释 中断里面不注释可以
while1里面不注释 中断里面注释就不行???

我想既然在中断里面可以实现我的功能 那么说明问题是cnt上
可是 就感觉cnt没有变化一样..不太明白 望大家赐教..
while(1)
    {
      if(cnt>=3)
      {
      cnt=0;
      Send_Byte('c');
      }
    }

#pragma vector = USCIAB0RX_VECTOR
__interrupt void ReceiveInterrupt(void)
  {
    P1OUT  ^= BIT6;     // light up P1.6 LED on RX  
    cnt++;
    IFG2 &=~UCA0RXIFG;
    /*if(cnt>=3)
    {
      cnt=0;
      Send_Byte('c');
    }*/
  }
2018-2-10 10:25:37   评论 邀请回答
3个回答

回帖奖励 +1 分积分

可能是代码优化造成的,cnt变量的读写被优化了,你的cnt定义时加个volatile做限制,看还会不会有问题。
2018-2-25 22:09:22 评论

举报

回帖奖励 +1 分积分

你试下是不是主循环一直没得到执行,我怀疑程序一直就在某个中断里,根本就没跳出中断
2018-2-26 09:27:01 评论

举报

回帖奖励 +1 分积分

用单步调试下程序,看是什么问题!!!
2018-2-26 12:02:59 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

提问题
关闭

站长推荐 上一条 /9 下一条

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