- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2025-03-30 20:18:10
中级会员
- 积分
- 236
|
本帖最后由 firefly2k 于 2024-4-15 13:24 编辑
请教下,我用的一箭双雕的例程
我修改了工作模式,在初始进入时,并不进入一箭双雕的工作模式。只有在收到特殊指令后,才进入。
现在的问题是,我初始进入不设置波特率,用一箭双雕默认的波特率初始化值,如下(应该是115200),但我实际收发时怎么发现波特率实际是9600呢?可能是什么原因?如何设置为115200波特率?
注:烧录时的主频设置与程序内部定义是一致的,都是24MHz
主程序部分:
sys_init();
uart_init();
timer_init();
usb_init();
EA = 1;
hmi_mode_id = 0; //正常模式
while (1)
{
if(hmi_mode_id) uart_polling();
if(f1s)
{
f1s = 0;
printf("1 Sec\r\n");
}
}
void uart_init()
{
SCON = 0x50;
TMOD &= ~0xf0;
TL1 = BR(MAIN_Fosc,115200);
TH1 = BR(MAIN_Fosc,115200) >> 8;
AUXR |= T1x12;
TR1 = 1;
ES = 1;
S2CON = 0x50;
T2L = BR(MAIN_Fosc,115200);
T2H = BR(MAIN_Fosc,115200) >> 8;
AUXR |= T2x12;
AUXR |= T2R;
IE2 |= ES2;
LineCoding1.dwDTERate = REV4(115200);
LineCoding1.bCharFormat = 0;
LineCoding1.bParityType = 0;
LineCoding1.bDataBits = 8;
LineCoding2.dwDTERate = REV4(115200);
LineCoding2.bCharFormat = 0;
LineCoding2.bParityType = 0;
LineCoding2.bDataBits = 8;
Uart1TxBusy = 0;
Uart1RxRptr = 0;
Uart1RxWptr = 0;
Uart1TxRptr = 0;
Uart1TxWptr = 0;
}
|
|