- 打卡等级:偶尔看看III
- 打卡总天数:55
- 最近打卡:2026-03-03 08:35:54
已绑定手机
金牌会员
- 积分
- 1374
|
发表于 2026-2-27 21:17:57
|
显示全部楼层
先改初始化:
void Uart2_Init(void) //9600bps@24.000MHz
{
P_SW2 |= 0x01; //UART2/USART2: RxD2(P4.6), TxD2
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //定时器时钟1T模式
T2L = 0x8F; //设置定时初始值
T2H = 0xFD; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
IE2 |= 0x01; //使能串口2中断
UR2TOCR = 0x00; //关闭超时中断
UR2TOTL = 0x04; //比特率9600bps下8N1的
UR2TOTH = 0x3b; //空闲时间是OX13b04
UR2TOTE = 0x01;
/*9600波特率下,8N1的空闲时间就是 1/9600*35 ~3.646ms;
带入公式3646= 1/22.1184*计时器数值,得出计时器
数值=87504= 0x13b04;
*/
Rec_Num = 0;
B_TX2_Busy = 0;
B_RX2_OK = 0;
}
|
|