请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3605|回复: 4

[已解决] 51开发板 串口通信数据太快,下一个数据 干扰上一个

 关闭 [复制链接]

1

主题

4

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2019-11-27 19:46:14 | 显示全部楼层 |阅读模式


发单个数据数码管两边一致
发动态数码管数据,两个开发板上的显示不一致,数码管前两位(显示的是小时)受到下一个数据开头两位(表示秒的部分)干扰,使得小时和秒钟一样一直跳
回复

使用道具 举报

1

主题

4

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2019-11-27 19:48:18 | 显示全部楼层
这是图片,数码管  前两位是小时   最后两位是秒

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

1

主题

4

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2019-11-27 19:50:07 | 显示全部楼层
主机发送   从机接收

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

1

主题

4

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2019-11-27 19:53:08 | 显示全部楼层
主机发送函数                                                                 send(0x55); //开始 头                                for(i=0;i<6;i++)               
                                {
                                send(fasong[i]);
                                display(miao,fen,shi); //显示函数
                                }


                                send(0x60);         //结束标志
   //////////////////////////////////////////////////////////////////////////////////////////////            
从机接收中断
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;

}




回复 支持 反对

使用道具 举报

20

主题

216

帖子

1115

积分

金牌会员

Rank: 6Rank: 6

积分
1115
发表于 2019-12-16 17:09:32 | 显示全部楼层
可以将波特率调低试试
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 02:23 , Processed in 0.086244 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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