请教个问题:
我在使用MSP430FR6043的串口中断接收数据的时候,我想在串口接收中断服务程序中使用全局变量来记录接收到的数据个数,我发现这个记录数据个数的变量记录几个数据之后就会自动清零。不知道为什么?
#pragma vector=USCI_A1_VECTOR
__interrupt void hal_uart_ISR(void)
{
switch(__even_in_range(UCA1IV,USCI_UART_UCTXCPTIFG))
{
case USCI_NONE: break;
case USCI_UART_UCRXIFG:
// Routine is executed when a byte is received via UART
recvcounter++;//这个变量是定义在外面的全局变量,用来记录接收到的数据个数,但是该变量很快就会自动清零,为什么呢?
guRxData = EUSCI_A_UART_receiveData(HAL_UART_BASE_ADDR);
hal_uart_TxByte(recvcounter);
// Send the received byte to TI_Serial_Comm
//if (hal_uart_DataRx_Event(Data) == true)
{
// LPM3_EXIT;//进入低功耗模式
}
break;
case USCI_UART_UCTXIFG: break;
case USCI_UART_UCSTTIFG: break;
case USCI_UART_UCTXCPTIFG: break;
}
}