/****************************************************************************** COMTX //UART 发送寄存器。 COMRX //UART 接收寄存器。 COMDIV0 //UART 标准波特率发生器除数0。 COMIEN0 //UART 中断使能寄存器0。 COMDIV1 //UART 标准波特率发生器除数1。 COMIID0 //UART 中断标识0。 COMCON0 //UART 控制寄存器0。 COMCON1 //UART 控制寄存器1。 COMSTA0 //UART 状态寄存器0。 COMSTA1 //UART 状态寄存器1。 COMDIV2 //UART 小数分频器寄存器。 ******************************************************************************/
void Init_UART(void) { COMCON0 = DLAB(1); // Enable access to COMDIV registers COMDIV0 = 0x21; //UART 标准波特率发生器除数0 Set baud rate to 9600. COMDIV1 = 0x00; //UART 标准波特率发生器除数1 //COMDIV2 = 0x21 + BIT11; //UART 小数分频器寄存器 Enable fractional divider for more accurate baud rate setting COMCON0 = Stop(1) |//停止位。用户置1 后,如果字长为5 位则传送1.5 个停止位;如果字长为6、7 或8 位,则传送2 个停止位。不论所选停止位的个数是多少,接收器只检查第一个停止位。用户清0,则在发送的数据中只产生一个停止位。 WLS(D8) ; //字长选择。 COMIEN0 = ETBEI(1) | ERBFI(1) ; //UART 中断使能寄存器0 Enable UART interrupts when Rx full and Tx buffer empty. IRQEN |= BIT11; // Enable UART interrupt source
}
|