232串口通信数据显示乱码

2019-07-18 08:25发布

发现了proteus论坛,再发个求教贴。实现单片机向PC端单方向数据传输,在串口调试助手显示。现在显示出来的数据都是乱码,一般这种都有什么原因?程序?还是波特率?或者其他?目前的程序是这样的:

#include<reg51.h>
void    initSer();         
uchar  sendFlag = 0;     
uchar  receFlag =0;   
code  uchar  SHUOMING0[] = "**************************** ";  
code  uchar  SHUOMING1[] = "哈哈哈哈";
code  uchar  SHUOMING2[] = "哈哈哈哈";
code  uchar  SHUOMING3[] = "**************************** ";
void sendChar(uchar sendValue);  
void sendAll(uchar *pValue);      

void serInt() interrupt 4   
{
  if(RI)      
  {
     RI = 0;
         receFlag=1;     
  }
  if(ti)  
    {  
        TI = 0;               
        sendFlag = 0;        
    }  
}  
void sendChar(uchar Value)
{  
     SBUF = Value;      
     sendFlag = 1;        
     while(sendFlag);   
}   
void sendAll(uchar *pValue)
{  
    while((*pValue) != '')   
    {  
        sendChar(*pValue);      
        pValue++;                 
    }  
}
void initSer()      
{  
        SCON=0X50;                        
        TMOD=0X20;                        
        PCON=0X80;                        
        TH1=0XF3;                                
        TL1=0XF3;
        ES=1;                                                
        EA=1;                                                
        TR1=1;                                       
}

void main()
{
   initSer();

    while(1)  
  {  
      while(receFlag)               
      {  
           sendAll(SHUOMING0);         
           sendAll(SHUOMING1);
           sendAll(SHUOMING2);
           sendAll(SHUOMING3);   
            receFlag=0;            
      }  
   }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
_goodjob
2019-07-18 18:56
小猪猪加速 发表于 2017-4-6 16:53
查查波特率 还有是不是字符显示,主循环里先发送一个字节试试,可以先发送123数字,或ABC试一下,最后检查下标志位设置的对不

波特率都尝试过了,向PC发送任何字符都不行,都会乱码或者无显示。现在是可以PC向单片机虚拟终端发数据,但单片机向PC串口调试助手发就会乱码。

一周热门 更多>