Browse Source

修正brt

bfysop-v2
mr.zhangsan 1 year ago
parent
commit
245860179a
  1. 4
      source/bsp/bsp_config.h
  2. 9
      source/msp/UART2.c
  3. 11
      source/msp/UART3.c
  4. 12
      source/msp/UART4.C

4
source/bsp/bsp_config.h

@ -81,9 +81,9 @@
#define D_uart0_BRT BRT_115200 #define D_uart0_BRT BRT_115200
#define D_uart0_SBIT SBIT_1 #define D_uart0_SBIT SBIT_1
#define D_PIN_UART0 PIN_UART0_Rxd_30_Txd_31 //RXD, TXD #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_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_PIN_UART3 PIN_UART3_Rxd_00_Txd_01 //RXD3, TXD3
#define D_uart4_BRT BRT_115200 #define D_uart4_BRT BRT_115200
#define D_PIN_UART4 PIN_UART4_Rxd_02_Txd_03 //RXD4, TXD4 #define D_PIN_UART4 PIN_UART4_Rxd_02_Txd_03 //RXD4, TXD4

9
source/msp/UART2.c

@ -12,11 +12,20 @@ void L0_uart2_init(void)
AUXR |= 0x10; AUXR |= 0x10;
#elif (MainFre_22M == D_sys_MainFre) // 9600bps@22.1184MHz #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位数据,可变波特率 S2CON = 0x50; // 8位数据,可变波特率
AUXR |= 0x04; //定时器时钟1T模式 AUXR |= 0x04; //定时器时钟1T模式
T2L = 0xC0; //设置定时初始值 T2L = 0xC0; //设置定时初始值
T2H = 0xFD; //设置定时初始值 T2H = 0xFD; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时 AUXR |= 0x10; //定时器2开始计时
#endif
#endif #endif
} }

11
source/msp/UART3.c

@ -12,6 +12,7 @@ void L0_uart3_init(void)
T4T3M |= 0x08; //启动定时器3 T4T3M |= 0x08; //启动定时器3
#elif (MainFre_22M == D_sys_MainFre) //115200bps@22.1184MHz #elif (MainFre_22M == D_sys_MainFre) //115200bps@22.1184MHz
#if (D_uart3_BRT == BRT_115200)
S3CON = 0x10; //8位数据,可变波特率 S3CON = 0x10; //8位数据,可变波特率
S3CON |= 0x40; //串口3选择定时器3为波特率发生器 S3CON |= 0x40; //串口3选择定时器3为波特率发生器
T4T3M &= 0xFD; //定时器时钟12T模式 T4T3M &= 0xFD; //定时器时钟12T模式
@ -19,6 +20,16 @@ void L0_uart3_init(void)
T3H = 0xFF; //设置定时初始值 T3H = 0xFF; //设置定时初始值
T4T3M |= 0x08; //定时器3开始计时 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 #endif
} }

12
source/msp/UART4.C

@ -23,13 +23,23 @@ void L0_uart4_init(void)//115200bps@11.0592MHz
#endif #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 = 0x10; //8位数据,可变波特率
S4CON |= 0x40; //串口4选择定时器4为波特率发生器 S4CON |= 0x40; //串口4选择定时器4为波特率发生器
T4T3M |= 0x20; //定时器时钟1T模式 T4T3M |= 0x20; //定时器时钟1T模式
T4L = 0xC0; //设置定时初始值 T4L = 0xC0; //设置定时初始值
T4H = 0xFD; //设置定时初始值 T4H = 0xFD; //设置定时初始值
T4T3M |= 0x80; //定时器4开始计时 T4T3M |= 0x80; //定时器4开始计时
#endif
#endif #endif
} }

Loading…
Cancel
Save