单片机/MCU论坛
直播中

申换换

7年用户 1504经验值
私信 关注
[问答]

STC51单片机为啥向PC发送汉字会出现乱码呀?

程序:(这是网上下载的,刚开始我的程序也这样,排查不出来原因,直接在网上下载了一个,还是这样,求大神指点。_下面还有串口接收的信息。)
//#include
#include
#include

#define uint unsigned int
#define uchar unsigned char


//毫秒级延时函数定义
void delay(uint z)
{
         uint xy;
         for(x = z; x > 0; x--)
                 for(y = 114; y > 0 ; y--);                 
}


//串口初始化
void UARtinit()
{
         SM0 = 0;        SM1 = 1;//串口工作方式18位UART波特率可变
         TR1 = 1;//启动定时器1
         TMOD = 0x20;//定时器1,工作模式2 8位自动重装
         TH1 = 0xfd;
         TL1 = 0xfd;//设置比特率9600
}


void main()
{
         UARTInit(); //串口初始化
         while(1)
         {
                 TI = 1;//发送请求标志位
                 puts("大家好!欢迎学习单片机");//发送的汉字
                 while(!TI);//判断是否发送完成  发送完成出循环
                 TI = 0;
                 delay(1000);//延迟1秒
         }        
}


回帖(2)

方春晓

2023-10-19 10:10:47
检查晶振频率,如果不合适,波特率不对就会导致乱码,还有检查上位机的波特率和一样格式接收和发送,用hex格式就要统一。        
举报

阿信509

2023-10-19 14:56:46
不好看汉字是不是乱码,要看你上位机接收到的数据是不是你要发送的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分