一、首先用软件模拟
经过验证,用软件配置115200波特率,在C51里面是行不通的,因为寄存器有限
此时应该翻阅手册看看,是否有其他的解决办法
二、查阅手册
发现定时器2,其实是C52的,也正是C52比C51增强的地方
配置思路
---------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
根据以上的问答,大致思路如下:
一、初始化串口(使能接收)
二、配置波特率(115200)
其实以上可以代替为
三、配置中断
------------------------------------------------------------------------------------
所以最终配置
void UartInit3( void ) //配置波特率115200
{
SCON = 0x50; //串口工作方式1,8位UART,波特率可变
TH2 = 0xFF;
TL2 = 0xFD; //波特率:115200 晶振=11.0592MHz
RCAP2H = 0xFF;
RCAP2L = 0xFD; //16位自动再装入值
/*****************/
TCLK = 1;
RCLK = 1;
C_T2 = 0;
EXEN2 = 0; //波特率发生器工作方式
/*****************/
TR2 = 1 ; //定时器2开始
EA = 1; //总中断
ES = 1; //串口中断标志位
PS = 1; //设置串口优先级为最高
}
参考文章: