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

2019-03-25 13:52发布

我的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');
    }*/
  }
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
qwerghf
1楼-- · 2019-03-25 20:01
< 在线调试看看cnt这个值变化是否满足条件
ienglgge
2楼-- · 2019-03-25 20:59
全局变量失效,怎么失效。用具体的现象描述。比如,你改变他的值,他不变。你赋值一个数,却变成另一个数。一个全局变量。要分析所有对这个变量有操作的地方。操作地方太多,就容易乱,导致问题。
LSJ.Micro
3楼-- · 2019-03-25 22:09
楼主也是6,第一次看到求助帖还要花芯币买主题了才能看到问题
moon548834
4楼-- · 2019-03-26 02:48
LSJ.Micro 发表于 2018-2-10 13:53
楼主也是6,第一次看到求助帖还要花芯币买主题了才能看到问题

what!!! 我是想就是回复一个给一个的。。第一次用。。不好意思啦
moon548834
5楼-- · 2019-03-26 03:26
 精彩回答 2  元偷偷看……
moon548834
6楼-- · 2019-03-26 03:40
我用定时器的 全局变量就可以用 估计是串口这边有问题,我用TI的例程 只要一涉及到全局变量也不行,再研究研究

一周热门 更多>