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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
我的cnt是一个开在main外的全局变量 就是想接受三次发送一次
. q% ]1 K; r. o' D* Y* ~  o在中断中写可以实现 但是把那部分放到main里面就一直不发送 很奇怪。& A6 L" @7 H* a7 g; |8 L
就是把while1里面内容注释 中断里面不注释可以9 t+ g2 S& d# w7 ~$ H. g6 I1 w
while1里面不注释 中断里面注释就不行???
2 M2 ~4 C5 \( U1 B
$ q# a' u' D# V: L9 |7 Z我想既然在中断里面可以实现我的功能 那么说明问题是cnt上
" j) ]4 s% _/ ]6 I可是 就感觉cnt没有变化一样..不太明白 望大家赐教..
; D' e- y) n! p7 Twhile(1)
; Q1 y! A! m1 [: e* j    {$ ?' d5 t3 s: D8 u) o9 z4 X
      IF(cnt>=3)) w2 |/ ~: I& d; T( b8 p" C9 {
      {/ z* @$ X+ Q3 h' x9 N
      cnt=0;: E- K4 U  k/ f4 q$ k$ q+ z2 j& L* \
      Send_Byte('c');
. `  E! e, L1 o+ b0 @      }
3 V5 Q' h5 f0 P( F) o) a    }3 b5 V- x" `6 _/ u  n% z% H
- q! G- @, O/ V! u3 G. |- H9 }4 t* O
#pragma vector = USCIAB0RX_VECTOR3 A7 M" z5 u' w/ s9 {3 A+ ?
__interrupt void ReceiveInterrupt(void)
: C; g/ P( C. ]. C2 ]/ G  {2 @9 [- ~1 h" r( G2 p" ~- ^
    P1OUT  ^= BIT6;     // light up P1.6 LED on RX  
8 A- }0 c' v# ~, p% o. n9 m' K    cnt++;
( g  n' P- n2 D; c5 t6 ?' l! l, F    IFG2 &=~UCA0RXIFG;$ s. {  o8 P! l! X
    /*if(cnt>=3)
0 X1 s8 _3 N+ G# D    {9 c0 w$ e, x( l+ Q9 l' k/ n7 V- L
      cnt=0;# k& ]; y* B# N9 k) w. c& V
      Send_Byte('c');
1 ]: e6 Q/ }! \' N    }*/
7 Q% d; ?2 M2 t7 {: Z% b2 [  }
3 D+ u' K' I2 x% N2 r7 t
  • 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-11-24 23:36 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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