diff --git a/source/bsp/bsp_config.h b/source/bsp/bsp_config.h index bff21ce..f337322 100644 --- a/source/bsp/bsp_config.h +++ b/source/bsp/bsp_config.h @@ -81,9 +81,9 @@ #define D_uart0_BRT BRT_115200 #define D_uart0_SBIT SBIT_1 #define D_PIN_UART0 PIN_UART0_Rxd_30_Txd_31 //RXD, TXD - #define D_uart2_BRT BRT_115200 + #define D_uart2_BRT BRT_9600 #define D_PIN_UART2 PIN_UART2_Rxd_10_Txd_11 //RXD2, TXD2 - #define D_uart3_BRT BRT_115200 + #define D_uart3_BRT BRT_9600 #define D_PIN_UART3 PIN_UART3_Rxd_00_Txd_01 //RXD3, TXD3 #define D_uart4_BRT BRT_115200 #define D_PIN_UART4 PIN_UART4_Rxd_02_Txd_03 //RXD4, TXD4 diff --git a/source/msp/UART2.c b/source/msp/UART2.c index c3342bd..a08e6f6 100644 --- a/source/msp/UART2.c +++ b/source/msp/UART2.c @@ -12,11 +12,20 @@ void L0_uart2_init(void) AUXR |= 0x10; #elif (MainFre_22M == D_sys_MainFre) // 9600bps@22.1184MHz + #if (D_uart2_BRT == BRT_115200) + S2CON = 0x50; //8位数据,可变波特率 + AUXR |= 0x04; //定时器时钟1T模式 + T2L = 0xD0; //设置定时初始值 + T2H = 0xFF; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 + + #elif(D_uart2_BRT == BRT_9600) S2CON = 0x50; // 8位数据,可变波特率 AUXR |= 0x04; //定时器时钟1T模式 T2L = 0xC0; //设置定时初始值 T2H = 0xFD; //设置定时初始值 AUXR |= 0x10; //定时器2开始计时 + #endif #endif } diff --git a/source/msp/UART3.c b/source/msp/UART3.c index 917189c..67d17fb 100644 --- a/source/msp/UART3.c +++ b/source/msp/UART3.c @@ -12,6 +12,7 @@ void L0_uart3_init(void) T4T3M |= 0x08; //启动定时器3 #elif (MainFre_22M == D_sys_MainFre) //115200bps@22.1184MHz + #if (D_uart3_BRT == BRT_115200) S3CON = 0x10; //8位数据,可变波特率 S3CON |= 0x40; //串口3选择定时器3为波特率发生器 T4T3M &= 0xFD; //定时器时钟12T模式 @@ -19,6 +20,16 @@ void L0_uart3_init(void) T3H = 0xFF; //设置定时初始值 T4T3M |= 0x08; //定时器3开始计时 + #elif (D_uart3_BRT == BRT_9600) + S3CON = 0x10; //8位数据,可变波特率 + S3CON |= 0x40; //串口3选择定时器3为波特率发生器 + T4T3M |= 0x02; //定时器时钟1T模式 + T3L = 0xC0; //设置定时初始值 + T3H = 0xFD; //设置定时初始值 + T4T3M |= 0x08; //定时器3开始计时 + + #endif + #endif } diff --git a/source/msp/UART4.C b/source/msp/UART4.C index 9b4c134..17bc793 100644 --- a/source/msp/UART4.C +++ b/source/msp/UART4.C @@ -23,13 +23,23 @@ void L0_uart4_init(void)//115200bps@11.0592MHz #endif -#elif (MainFre_22M == D_sys_MainFre) //9600bps@22.1184MHz +#elif (MainFre_22M == D_sys_MainFre) + #if (D_uart4_BRT == BRT_115200) + S4CON = 0x10; //8位数据,可变波特率 + S4CON |= 0x40; //串口4选择定时器4为波特率发生器 + T4T3M |= 0x20; //定时器时钟1T模式 + T4L = 0xD0; //设置定时初始值 + T4H = 0xFF; //设置定时初始值 + T4T3M |= 0x80; //定时器4开始计时 + + #elif (D_uart4_BRT == BRT_9600) //9600bps@22.1184MHz S4CON = 0x10; //8位数据,可变波特率 S4CON |= 0x40; //串口4选择定时器4为波特率发生器 T4T3M |= 0x20; //定时器时钟1T模式 T4L = 0xC0; //设置定时初始值 T4H = 0xFD; //设置定时初始值 T4T3M |= 0x80; //定时器4开始计时 + #endif #endif }