电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
STC51单片机为啥向PC发送汉字会出现乱码?
已解决
73482
个问题
已帮助
5993
位优秀工程师
STC51单片机为啥向PC发送汉字会出现乱码?
sjsjling
2019-09-11
浏览量:1308
程序:(这是网上下载的,刚开始我的程序也这样,排查不出来原因,直接在网上下载了一个,还是这样,求大神指点。_下面还有串口接收的信息。)
//#include <reg52.h>
#include <stdio.h>
#include <stc89.h>
#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秒
}
}
串口接收内容:
大家好!欢?暗テ?
大家好!欢迎学习单片??
大家好!欢迎学习单片机
大家好!欢迎学习单片机
大家?茫』队暗テ?机
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答
数量:
2
STM32ZET6
检查晶振频率,如果不合适,波特率不对就会导致乱码,还有检查上位机的波特率和一样格式接收和发送,用hex格式就要统一。
发布于
2019-09-12
举报
评论 0
1
0
发布
川楠
网上下载的程序,你不知道人家晶振的频率是多少。
所以你最好是根据你的晶振频率计算一下 定时器初值。
另外STC 是有代码生成工具的的,可以直接生成串口C语言代码
发布于
2019-09-12
举报
评论 0
0
0
发布
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
STC51单片机为啥向PC发送汉字会出现乱码?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: