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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
我的cnt是一个开在main外的全局变量 就是想接受三次发送一次
% B) H( M; m- S" D. [+ Q3 G& @, d在中断中写可以实现 但是把那部分放到main里面就一直不发送 很奇怪。' Z  {% g5 j( k, m/ M, \; a# p
就是把while1里面内容注释 中断里面不注释可以! s* T) G0 ?1 E/ O3 N/ r( N
while1里面不注释 中断里面注释就不行???
' k" r$ r( U, r/ t  d6 R2 f7 T% V( D* \: e+ G3 A% o0 B# b
我想既然在中断里面可以实现我的功能 那么说明问题是cnt上7 l# f6 B# b& I4 h
可是 就感觉cnt没有变化一样..不太明白 望大家赐教..) T2 m& i2 ^  L1 U$ z: |) }5 g0 O0 ?
while(1)
' d, i# ]; s0 s0 c! S* n    {
- [, D0 C9 W& T% z, O      IF(cnt>=3)  g# D5 n( q  L9 O' f4 L- }
      {0 h: Q7 G5 A2 P$ F" B
      cnt=0;
2 j7 X# l& ~* e7 o      Send_Byte('c');* j# `# t( s  }: C/ z: r
      }* R/ W) d5 N% l; B) b! Z
    }
1 V# I, R( R4 h! ?. l! O/ T; ~3 Q& Y
% |5 K5 u3 `' S/ @3 b, _1 A! W#pragma vector = USCIAB0RX_VECTOR  B7 @/ r% d0 W' h% w% J9 C0 m* E
__interrupt void ReceiveInterrupt(void)
% ^# \: I" \& w7 Y+ w2 o/ z  {
. {( d; C; H- r* @6 u    P1OUT  ^= BIT6;     // light up P1.6 LED on RX  ; u/ B; W1 K0 W$ Z4 x# [' I$ b: Z
    cnt++;* e7 B. o! y8 `- ~- \! W( K
    IFG2 &=~UCA0RXIFG;
1 D' @$ U4 E& i' r1 T9 Q    /*if(cnt>=3)1 i( Y* }. e6 {7 J7 ]) X
    {; [  H* \: e( @7 w2 i  |2 i
      cnt=0;
; T+ ~. v( Z8 _# B" S: m      Send_Byte('c');
% ^; ~- P) a' V& V$ t    }*/
8 \! W- U* s/ l* z9 V  }
9 D0 _: J# [* g( F  m5 |) i
  • 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-6-24 09:02 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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