51单片机串口通信,接收端显示的数码管最后两位数字一直...

2020-01-12 17:14发布

本帖最后由 yuguoyu123456 于 2019-11-27 20:00 编辑

我用串口通信使两个单片机的8位数码管各显示时间,一个显示时间,并发数据,一个收到数据显示,现在的问题是:后面数据覆盖了一部分前面的数据,使小时位置一直在波动,我应该怎么解决
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
1826772880
2020-01-14 08:41
这是从机接收中断的void ser_isr() interrupt 4 { static unsigned char tou = 0x00;  static unsigned char flag = 0;   中断里声明变量?   RI=0; tou = SBUF;            if(flag == 1 ) {          buf[num]=SBUF;         num++;          if(num == 6 )         {                 num = 0;                 flag = 0;         }   二次复位?              if(tou == 0x60 )         {                 num = 0;                 flag = 0;         } } if ( tou == 0x55 ) flag = 1;你需要两个flag,一个是中断内判断的,应该是显示扫描用的。或者你需要两个buff,应该是中断内写的,应该是给显示用的。不然你这边显示,那边中断给覆盖了

一周热门 更多>