找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2483|回复: 1
收起左侧

Proteus仿真串口接收不正确

[复制链接]
ID:902815 发表于 2021-4-12 19:38 | 显示全部楼层 |阅读模式
下面的程序和仿真计划实现:单片机1向单片机2发送字符a,单片机2接收到a之后,将当前测得温度发送给单片机1,单片机1接收到温度数据,发送到一个终端设备(这里用Virtual terminal代替)。Proteus仿真发现,单片机1发送出来a之后,单片机2无法正常发送温度数据;但是,采用Virtual terminal直接向单片机2发送字符a,单片机2可以正常发送温度数据。请问哪位大佬知道这是为啥?
  1. /*单片机2程序*/
复制代码
  1. /*单片机1程序*/
复制代码



捕获.JPG
回复

使用道具 举报

ID:902815 发表于 2021-4-13 10:04 | 显示全部楼层
这个问题解决了,解决方法是:修改单片机1的接收停止条件。
  1. while(1)
  2.                 {
  3.                         if(flag==1)
  4.                         {
  5.                                 for(i=0;i<6;i++)  
  6.                                 {  
  7.                                         SBUF=s[i];  
  8.                                         while(!TI);  
  9.                                         TI=0;  
  10.                                 }  
  11.                                 flag=0;  
  12.                         }
  13.                         if(s[5]=='D')
  14.                         {
  15.                                 s[5]='A';
  16.                                 break;
  17.                         }
  18.                         else
  19.                         {
  20.                                 count++;
  21.                                 if(count==10)
  22.                                 {
  23.                                         count=0;
  24.                                         break;
  25.                                 }       
  26.                         }
  27.                 }
复制代码
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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