微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新手问大神 关于串行口

新手问大神 关于串行口

时间:10-02 整理:3721RD 点击:
意图:在上位机上用串口调试助手发送一个字符X,单片机收到后返回给上位机“I get X”,串行口波特率9600bps
实际得到 XI get X 求问为什么多了X  代码如下  串口调试助手界面见附图
#include<reg52.h>
#define uchar unsigned char
uchar table[]="I get ";
void init();
uchar flag,i,a;
void main()
{
init();
while(1)
{
    if(flag==1)
    {
      ES=0;
   for(i=0;i<6;i++)
   {
    SBUF=table[i];
    while(!TI);
    TI=0;
   }
   SBUF=a;
   while(!TI);
   TI=0;
   ES=1;
   flag=0;
    }
}
}
void init ()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void S ()interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}


把串口助手里的显示发送选项取消,这个应该是串口助手的发送回显功能,发送的数据,会在接收窗口同时显示

原来如此 我还在码上找信息 感谢

程序没有问题,可能是串口助手设置问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top