我已经重新编写了 UART 数据管理状态机以支持 UART RX 中断。 但是、UART 永远不会生成并中断!
// UART 初始化。
UCA0CTL1 |= UCSWRST;//禁用 UART。
UCA0CTL0 |= 0x00;//无奇偶校验、LSB 优先、8位字符、1个停止位、UART 模式、异步模式
UCA0CTL1 |= 0x40;// ACLK
UCA0MCTL |= UCBRF_3 + UCBRS_5 + UCOS16;// 230、400波特
UCA0BR0 |= 0x04;//波特率预分频高字节
UCA0BR1 |= 0x00;//波特率预分频的低字节
UCA0CTL1 &=~UCSWRST;//启用 UART。
IE2 |= UCA0RXIE;//启用 UART 接收中断。
//将 RX 缓冲区中的字符复制到 Serial_Port_Data。
#pragma vector=USCIAB0RX_vector
__interrupt void USCI0RX_ISR (void){
_DINT();
Serial_Port_Data = UCA0RXBUF;
System_Flags |= UART_RX_DATA;
_EINT();
}
此致、Harvey