2677|8

4

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

新手求助 串口中断里面全局变量失效问题 [复制链接]

我的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');
    }*/
  }
此帖出自模拟电子论坛

最新回复

volatile加起来  别编译器优化了吧  详情 回复 发表于 2018-3-8 08:57
点赞 关注

回复
举报

1059

帖子

1

TA的资源

版主

沙发
 
在线调试看看cnt这个值变化是否满足条件
此帖出自模拟电子论坛
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

板凳
 
全局变量失效,怎么失效。用具体的现象描述。比如,你改变他的值,他不变。你赋值一个数,却变成另一个数。一个全局变量。要分析所有对这个变量有操作的地方。操作地方太多,就容易乱,导致问题。
此帖出自模拟电子论坛
 
 
 
 

回复

62

帖子

1

TA的资源

一粒金砂(中级)

4
 
楼主也是6,第一次看到求助帖还要花芯币买主题了才能看到问题
此帖出自模拟电子论坛
 
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

5
 
LSJ.Micro 发表于 2018-2-10 13:53
楼主也是6,第一次看到求助帖还要花芯币买主题了才能看到问题

what!!! 我是想就是回复一个给一个的。。第一次用。。不好意思啦
此帖出自模拟电子论坛
 
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

6
 
LSJ.Micro 发表于 2018-2-10 13:53
楼主也是6,第一次看到求助帖还要花芯币买主题了才能看到问题

what!!! 我是想就是回复一个给一个的。。第一次用。。不好意思啦
此帖出自模拟电子论坛
 
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

7
 
我用定时器的 全局变量就可以用 估计是串口这边有问题,我用TI的例程 只要一涉及到全局变量也不行,再研究研究
此帖出自模拟电子论坛
 
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

8
 
定义cnt时加入volatile应该可以解决
此帖出自模拟电子论坛
 
 
 
 

回复

26

帖子

1

TA的资源

一粒金砂(中级)

9
 
volatile加起来  别编译器优化了吧
此帖出自模拟电子论坛
 
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表