?* @fn? ? ? UART1_IRQHandler
?*
?* @brief? ?UART1中斷函數(shù)
?*
?* @return? none
?*/
__INTERRUPT
__HIGH_CODE
void UART1_IRQHandler(void)
{
? ? volatile uint8_t i;
? ? switch(UART1_GetITFlag())
? ? {
? ? ? ? case UART_II_LINE_STAT: // 線路狀態(tài)錯(cuò)誤
? ? ? ? {
? ? ? ? ? ? UART1_GetLinSTA();
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? case UART_II_RECV_RDY: // 數(shù)據(jù)達(dá)到設(shè)置觸發(fā)點(diǎn)
? ? ? ? ? ? for(i = 0; i != trigB; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? RxBuff[i] = UART1_RecvByte();
? ? ? ? ? ? ? ? UART1_SendByte(RxBuff[i]);
? ? ? ? ? ??? ?UART3_SendByte(RxBuff[i]);//串口1接收的數(shù)據(jù)同時(shí)發(fā)送串口3
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? case UART_II_RECV_TOUT: // 接收超時(shí),暫時(shí)一幀數(shù)據(jù)接收完成
? ? ? ? ? ? i = UART1_RecvString(RxBuff);
? ? ? ? ? ? UART1_SendString(RxBuff, i);
? ? ? ? ? ? break;
? ? ? ? case UART_II_THR_EMPTY: // 發(fā)送緩存區(qū)空,可繼續(xù)發(fā)送
? ? ? ? ? ? break;
? ? ? ? case UART_II_MODEM_CHG: // 只支持串口0
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? break;
? ? }
}