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

2020-01-12 17:14发布

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

我用串口通信使两个单片机的8位数码管各显示时间,一个显示时间,并发数据,一个收到数据显示,现在的问题是:后面数据覆盖了一部分前面的数据,使小时位置一直在波动,我应该怎么解决
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
yuguoyu123456
1楼-- · 2020-01-13 17:41
就是后面数据覆盖了一部分前面的数据
jswd0810
2楼-- · 2020-01-13 22:46
 精彩回答 2  元偷偷看……
yuguoyu123456
3楼-- · 2020-01-13 23:35
jswd0810 发表于 2019-11-27 20:37
数码管扫描周期

您能说仔细一点吗
w71057178
4楼-- · 2020-01-14 03:36
这种开发板很多IO口都是复用的。你去看看原理图。把复用的电路断开。
1826772880
5楼-- · 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,应该是中断内写的,应该是给显示用的。不然你这边显示,那边中断给覆盖了
1826772880
6楼-- · 2020-01-14 11:23
接收buff检验完无误,拷贝给显示buff,拷贝完打开中断再接收

一周热门 更多>