MSP430技术论坛
直播中

moon548834

7年用户 48经验值
擅长:嵌入式技术 控制/MCU
私信 关注
[问答]

新手求助 串口中断里面全局变量失效问题

我的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');
    }*/
  }

回帖(3)

hualuoys

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

Aidaohuakai

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

孙泽文

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

更多回帖

发帖
×
20
完善资料,
赚取积分