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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
我的cnt是一个开在main外的全局变量 就是想接受三次发送一次
- v  v4 m' W8 a; P" s在中断中写可以实现 但是把那部分放到main里面就一直不发送 很奇怪。- x2 x* i  D& `+ G. y) C1 {
就是把while1里面内容注释 中断里面不注释可以
2 c  \1 r2 a' ywhile1里面不注释 中断里面注释就不行??? 5 @3 E+ R8 K5 }7 E$ m( _
4 p7 l. L- J$ l5 `. e
我想既然在中断里面可以实现我的功能 那么说明问题是cnt上- e4 |' _6 l7 J9 S' R9 m0 w/ ^7 `  |
可是 就感觉cnt没有变化一样..不太明白 望大家赐教..
) @5 [  K* i0 G. w7 V2 fwhile(1)3 t) L5 \% G) j* ~$ o) m
    {  O3 }9 ]7 C0 K
      IF(cnt>=3)
% u' [* b/ Q' f1 d- C      {
. J; |) r$ ]9 G      cnt=0;
0 n/ w8 M, f3 P- E      Send_Byte('c');, w- k. E$ o3 o3 ^2 F
      }
2 p& j  s3 Q, T, F    }
. K5 [* c$ Q9 S/ L' F' i' l) v+ Q: G" J( S: Z: V% v" u
#pragma vector = USCIAB0RX_VECTOR7 A& w! d# W: K
__interrupt void ReceiveInterrupt(void)/ N( B3 p& X5 l9 c
  {6 |0 z: h) J% ~7 |
    P1OUT  ^= BIT6;     // light up P1.6 LED on RX  
' y7 M* N$ H- i. ]3 a    cnt++;
6 V5 _3 J5 C# h8 j    IFG2 &=~UCA0RXIFG;" u4 X/ A* c7 t2 g5 s1 S
    /*if(cnt>=3)" ^& A' d3 z1 |( {; e& r) }6 V
    {
/ c1 i& p6 {0 t# k      cnt=0;
" t: U4 {& \1 W" t" H3 x4 X      Send_Byte('c');6 }( ]6 J, E4 N' I+ V/ R
    }*/
/ r) r' I; X- A, ?* I) K3 O' R( j  }+ u0 f# G- K3 {
  • 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-25 01:32 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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