一个单片机不断向PC发一个字符的程序,但是串口助手收到的乱码,网上的其他程序我也试过,人家例子可以成功,但是我这就收到是乱码,求大神讲解一下
#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);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
能吧您的串口助手接受的数据给我截个图么,我改成16进制收到的是81 81 81 ,也对不上,我试过网上很多单片机串口通讯例程,全都乱码 没一个成功的,串口助手我也换过,接受到是一样的
程序我这里一直设置的是11.0592,不太明白怎么设置内部晶振,
一周热门 更多>