|
|
@ -6,39 +6,37 @@ |
|
|
|
//#define BAUD4 115200 //串口波特率
|
|
|
|
void L0_uart4_init(void)//115200bps@11.0592MHz
|
|
|
|
{ |
|
|
|
#if(MainFre_11M == D_sys_MainFre) |
|
|
|
#if 0 |
|
|
|
S4CON = 0x50; //8位可变波特率
|
|
|
|
T4L = (65536 - (FOSC/4/BAUD4)); //设置波特率重装值
|
|
|
|
T4H = (65536 - (FOSC/4/BAUD4))>>8; |
|
|
|
T4T3M |= 0x20; //定时器4为1T模式
|
|
|
|
T4T3M |= 0x80; //定时器4开始计时
|
|
|
|
#else |
|
|
|
S4CON = 0x10; //8位数据,可变波特率
|
|
|
|
S4CON |= 0x40; //串口4选择定时器4为波特率发生器
|
|
|
|
T4T3M |= 0x20; //定时器4时钟为Fosc,即1T
|
|
|
|
T4L = 0xE8; //设定定时初值
|
|
|
|
T4H = 0xFF; //设定定时初值
|
|
|
|
T4T3M |= 0x80; //启动定时器4
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if(MainFre_11M == D_sys_MainFre) |
|
|
|
#if 0 |
|
|
|
S4CON = 0x50; //8位可变波特率
|
|
|
|
T4L = (65536 - (FOSC/4/BAUD4)); //设置波特率重装值
|
|
|
|
T4H = (65536 - (FOSC/4/BAUD4))>>8; |
|
|
|
T4T3M |= 0x20; //定时器4为1T模式
|
|
|
|
T4T3M |= 0x80; //定时器4开始计时
|
|
|
|
#else |
|
|
|
S4CON = 0x10; //8位数据,可变波特率
|
|
|
|
S4CON |= 0x40; //串口4选择定时器4为波特率发生器
|
|
|
|
T4T3M |= 0x20; //定时器4时钟为Fosc,即1T
|
|
|
|
T4L = 0xE8; //设定定时初值
|
|
|
|
T4H = 0xFF; //设定定时初值
|
|
|
|
T4T3M |= 0x80; //启动定时器4
|
|
|
|
#endif |
|
|
|
|
|
|
|
#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开始计时
|
|
|
|
|
|
|
|
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开始计时
|
|
|
|
S4CON = 0x10; //8位数据,可变波特率
|
|
|
|
S4CON |= 0x40; //串口4选择定时器4为波特率发生器
|
|
|
|
T4T3M |= 0x20; //定时器时钟1T模式
|
|
|
|
T4L = 0xC0; //设置定时初始值
|
|
|
|
T4H = 0xFD; //设置定时初始值
|
|
|
|
T4T3M |= 0x80; //定时器4开始计时
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|