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条回答
小猪猪加速
1楼-- · 2019-07-18 13:48
查查波特率 还有是不是字符显示,主循环里先发送一个字节试试,可以先发送123数字,或ABC试一下,最后检查下标志位设置的对不
chenwei6991627
2楼-- · 2019-07-18 18:31
看看波特率,看看晶振,是不是符合要求
_goodjob
3楼-- · 2019-07-18 18:56
小猪猪加速 发表于 2017-4-6 16:53
查查波特率 还有是不是字符显示,主循环里先发送一个字节试试,可以先发送123数字,或ABC试一下,最后检查下标志位设置的对不

波特率都尝试过了,向PC发送任何字符都不行,都会乱码或者无显示。现在是可以PC向单片机虚拟终端发数据,但单片机向PC串口调试助手发就会乱码。
_goodjob
4楼-- · 2019-07-18 22:35
 精彩回答 2  元偷偷看……
武力戡乱
5楼-- · 2019-07-18 23:52
你是说仿真吗?仿真的话,电路有问题吗。
_goodjob
6楼-- · 2019-07-19 05:39
武力戡乱 发表于 2017-4-9 22:10
你是说仿真吗?仿真的话,电路有问题吗。

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

一周热门 更多>