comx:选择哪个UART口;MOD=0-->n(MODE1),=1-->s(MODE3) *******************************************************************************************/ void UART_BPS_Init(unsigned char comx,unsigned int bps,unsigned char mod,unsigned char isr_en){
if(comx==COM0){ PINSEL0 |= (5<<0); // 设置I/O连接到UART0 if(mod==MOD1){ U0LCR = B1000_0011;//0x83;mod1 // DLAB = 1,可设置波特率 }else{ U0LCR = B1010_1011;//0xab;mod3 // DLAB = 1,可设置波特率 } U0DLM= (Pclk / 16) / bps/256; // 设置波特率 // U0DLL = ((Pclk / 16) / bps)%256; // U0LCR &= 0x7f; //与51通讯方式3,d5d4=10必须要强制位1 // }else{ PINSEL0 |= (5<<16); // 设置I/O连接到UART1 if(mod==MOD1){ U1LCR = B1000_0011;//0x83;mod1 // DLAB = 1,可设置波特率 }else{ U1LCR = B1010_1011;//0xab;mod3 // DLAB = 1,可设置波特率 } U1DLM= (Pclk / 16) / bps/256; // 设置波特率 // U1DLL = ((Pclk / 16) / bps)%256; // U1LCR &= 0x7f; //与51通讯方式3,d5d4=10必须要强制位1 // } if(isr_en) UART_ISR_Init(comx); } |