求助,51串口通信发送程序,接收端乱码

2019-07-15 08:41发布

一个单片机不断向PC发一个字符的程序,但是串口助手收到的乱码,网上的其他程序我也试过,人家例子可以成功,但是我这就收到是乱码,求大神讲解一下 QQ截图20180409171303.png
#include "reg52.h"       
#define uchar unsigned char
#define uint unsigned int
void inital (void)
{
        SCON = 0X50;  //UART方式1;8位UART
        REN  = 1;     //允许串行口接收数据
        PCON = 0x00;  //SMOD=0;波特率不加倍
        TMOD = 0x20;  //T1方式2,用于产生波特率
        TH1  = 0xFD;  //装初值
        TL1  = 0xFD;
        TR1  = 1;     //启动定时器1
        EA   = 1;     //打开全局中断控制
        ES   = 1;     //打开串行口中断       
}
void delay(uchar milisec)
{
uchar i,j;
for(i=0;i<milisec;i++)
     for(j=0;j<150;j++);
}
void main()
{
inital();
SBUF=0x01;
while(1)
{
   if(ti==1)
   {
   SBUF=0x01;
   TI=0;
   delay(500);
   }
}
}       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
人中狼
1楼-- · 2019-07-15 18:09
 精彩回答 2  元偷偷看……
工大古天乐
2楼-- · 2019-07-15 21:44
勇哥-lzu 发表于 2018-4-10 12:04
用人家的例子改一下

这就是网上的程序
工大古天乐
3楼-- · 2019-07-16 01:24
人中狼 发表于 2018-4-10 13:02
串口助手改成16进制显示试试

一样,16进制显示与我发的数据对不上
wulinwl
4楼-- · 2019-07-16 04:45
程序本身没有问题,可能是你串口助手设置不当。另外查查晶振是不是11.0592MHz的,否则要改定时器设置。
工大古天乐
5楼-- · 2019-07-16 06:54
wulinwl 发表于 2018-4-11 17:12
程序本身没有问题,可能是你串口助手设置不当。另外查查晶振是不是11.0592MHz的,否则要改定时器设置。

串口助手的设置就是上图那样,一个停止位,8位数据,没有校验位,晶振也是11.0592的
人中狼
6楼-- · 2019-07-16 11:40
 精彩回答 2  元偷偷看……

一周热门 更多>