求助,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-17 08:12
人中狼 发表于 2018-4-12 11:44
查查硬件电路吧,STC的振荡器选择是在下载软件界面设置的,并不是在KEIL里设置的,同样在KEIL里设置的晶振频率应该只是做软件仿真时使用,硬件的晶振频率取决于硬件电路里的晶振,与KEIL的设置没关系

我用的普中的开发板就不行,换了块最小系统的板子就可以了,那硬件的晶振怎么解决呢?
人中狼
2楼-- · 2019-07-17 12:06
硬件晶振频率不对的话,就得更换晶振了
工大古天乐
3楼-- · 2019-07-17 14:23
人中狼 发表于 2018-4-12 11:44
查查硬件电路吧,STC的振荡器选择是在下载软件界面设置的,并不是在KEIL里设置的,同样在KEIL里设置的晶振频率应该只是做软件仿真时使用,硬件的晶振频率取决于硬件电路里的晶振,与KEIL的设置没关系

普中开发板硬件电路上使用的晶振是12M的 ,我刚找到,这个可以修改么
工大古天乐
4楼-- · 2019-07-17 14:51
 精彩回答 2  元偷偷看……
勇哥-lzu
5楼-- · 2019-07-17 18:27
工大古天乐 发表于 2018-4-12 11:06
程序我这里一直设置的是11.0592,不太明白怎么设置内部晶振,

这晶振设置只在使用keil仿真的时候起作用,不会单片机实际运行的晶振频率

一周热门 更多>