工具/软件:Code Composer Studio
仅针对最后一个字节触发 RX 中断。 我使用的是具有8-N-1的115200波特。 我能够顺利地进行传输。 我在分析器上看到接收到的数据-不确定为什么不触发中断
下面的代码片段:
extern void UART_init (void)
{
GPIO_SET_PERIPHERAL_MODULE_OUTPUT (UART_TX);
GPIO_Set_Peripheral_MODULE_OUTPUT (UART_RX);
USCI_A_UART_initParam param ={0};
param.selectClockSource = USCI_A_UART_CLOCKSOURCE_SMCLK;//1.04MHz
param.clockPrescalar = 9;
param.firstModReg = 0;
param.secondModReg = 1;
param.parity = USCI_A_uart_no_parity;
param.msborLsbFirst = USCI_A_UART_LSB_FIRST;
param.numerofStopBits = USCI_A_UART_One_STOP_BIT;
param.uartMode = USCI_A_UART_MODE;
param.overSAMPLING = 0;
USCI_A_UART_INIT (USCI_A0_BASE、param);
USCI_A_UART_ENABLE (USCI_A0_BASE);
USCI_A_UART_clearInterrupt (USCI_A0_BASE、USCI_A_UART_Transmit 中断_FLAG);
USCI_A_UART_clearInterrupt (USCI_A0_BASE、USCI_A_UART_Receive_interrupt_FLAG);
USCI_A_UART_enableInterrupt (USCI_A0_BASE、USCI_A_UART_receive_interrupt);
USCI_A_UART_enableInterrupt (USCI_A0_BASE、USCI_A_UART_Transmit _INTERRUPT);
}
#pragma vector=USCI_A0_Vector
_interrupt void USCI_A0_ISR (void)
{
switch (__evo_in_range (UCA0IV、4))
{
//如果 RX BUF 挂起
案例2:
UartRcvBuf[UartRcvBufIndex++]= UCA0RXBUF;
}