stc12c5a60s2单片机利用串口1进行通信,在接收和发出的代码都出现混乱的现象

新手上路,请多包涵

问题描述

我用串口助手时,原本是想接收到0X4a时进行发送操作,然而只有接收到0Xaa时才能发送,而且发送的也是乱码

问题出现的环境背景及自己尝试过哪些方法

是利用串口通信时出现问题,发现只有输入aa才能执行发送操作

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

include<reg52.h>

define uint unsigned int

define uchar unsigned charu

char a,b; //a是用来取出sbuf中的数值,b是用来判断是否要发送数据
void UartInit();
void shu();
uchar hello[]={0X48,0X45,0X4c,0X4c,0X4f,0X2c,0X0d,0X0a}; //发出文本“hello!”,其中0X0d,0X0a为换行操作
void UartInit()
{

TMOD=0X20;    
TH1=0Xfa; //波特率9600,12M晶体    
TL1=0Xfa;     
TR1=1;    
SCON=0X50;    
PCON|=0X80;    
EA=1;    
ES=1;

}
void shu()
{

uchar i;    
for(i=0;i<8;i++) 
{    
     SBUF=hello[i];    
     while(!TI); TI=0;    
}

}
void main()
{

  P0=0X00;    
  b=0;    
  UartInit();    
  while(1)    
  { 
       if(b==1)
       {shu();b=0;}    
  }

}
void zhongduan() interrupt 4
{

 if(RI)
  {    
        RI=0;    
        a=SBUF;    
        if(a==0X4a)b=1;    
 }

}

你期待的结果是什么?实际看到的错误信息又是什么?

希望当串口助手输入aa时,电脑会显示“Hello!”
然而接收到的只是一堆乱码

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进