找回密码
 注册
关于网站域名变更的通知
查看: 488|回复: 2
打印 上一主题 下一主题

请教串口中断里面全局变量失效问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-2 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
我的cnt是一个开在main外的全局变量 就是想接受三次发送一次9 d) k: r' F* E/ t& F/ i" z
在中断中写可以实现 但是把那部分放到main里面就一直不发送 很奇怪。
' `: [$ `) r: h( ^! v- U+ f$ d9 n就是把while1里面内容注释 中断里面不注释可以* z4 u$ ~6 f- P0 S% Z) B; D& B( \
while1里面不注释 中断里面注释就不行???
" D; {3 x1 l) X: h* S0 v9 N/ w' X. W+ @7 V9 A
我想既然在中断里面可以实现我的功能 那么说明问题是cnt上
8 m& R. g; z4 _2 c可是 就感觉cnt没有变化一样..不太明白 望大家赐教..1 {, ^: L: E8 N
while(1)
  K6 w7 O4 g7 ^4 o    {9 t# b9 e, u) H. }
      IF(cnt>=3)
1 {6 A' b# q" v, ^      {
& _5 C; g! m- `+ G6 H      cnt=0;9 I( J. Z4 b7 s6 E' x
      Send_Byte('c');
2 w& I) X9 ]5 \$ r+ y      }/ \' _0 ]& e0 V" X/ y
    }( E1 h/ O3 r& t- c

3 _  M  _- w2 [#pragma vector = USCIAB0RX_VECTOR
2 ?9 W; z; {% I3 K( k1 y__interrupt void ReceiveInterrupt(void)  L8 H8 ]+ B" u! R! o3 B+ t
  {
( z3 Q2 Y7 @6 g( }, X    P1OUT  ^= BIT6;     // light up P1.6 LED on RX  ) J: Y" R* `/ a+ H
    cnt++;
8 S$ _4 `) s5 X- F- x7 b, r    IFG2 &=~UCA0RXIFG;7 Y9 V+ I% ^# i( i' x: l  C
    /*if(cnt>=3)# V: V0 q/ X3 Z1 ~
    {
/ @4 ?/ w0 x6 B2 y      cnt=0;
3 g6 A3 X( b/ C3 u      Send_Byte('c');0 J0 B) M* w6 T1 V, x! B! b5 {( }
    }*/
  v3 q) A. P, ~  R0 c( i  }$ {6 |. _+ _5 j' \! K9 E# {' b
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-9-2 15:30 | 只看该作者
    可能是代码优化造成的,cnt变量的读写被优化了,你的cnt定义时加个volatile做限制,看还会不会有问题

    该用户从未签到

    3#
    发表于 2020-9-3 09:36 | 只看该作者
    你试下是不是主循环一直没得到执行,我怀疑程序一直就在某个中断里,根本就没跳出中断
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-8 14:20 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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