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-19 05:39
武力戡乱 发表于 2017-4-9 22:10
你是说仿真吗?仿真的话,电路有问题吗。

对,仿真。电路应该没问题,不加max232用官网的示例程序可以发送。这个程序有问题,想要单片机直接向PC发送数据不能实现,一定要PC发个字符才能开始传输,而且传输到串口助手显示乱码。。。

一周热门 更多>