求助,STC12LE5608AD 串口通信波特率设置问题
下面我用STC12LE5608AD这款单片机写的串口通信程序,串口应该是一直接受0xaa才对,但是接收到的却是其他的数,因此我怀疑是波特率设置错误,但是我又找不出哪里设置出了错,不知道各位高手能否指点一下,谢谢!void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7f; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xbf; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xfe; //串口1选择定时器1为波特率发生器
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void R_S_Byte(uchar dat)
{
SBUF = dat;
while( !TI ); //查询法
TI = 0;
}
void main()
{
UartInit();
while(1)
{
R_S_Byte(0xaa);//将接收数据buf中的数据通过串口发送
Delay(10000);
}
} 下载时勾选“使用外部晶体或时钟”这一项没? 看设置好像没错
1楼的问题你应该注意下,虽然5608这个片子,STC的下载软件默认是用外置时钟的,但也难免你无意中设置为用内部RC时钟 回复【1楼】BXAK
-----------------------------------------------------------------------
确实是不小心勾了使用内部RC时钟,谢谢1楼和2楼!
页:
[1]