1:定義一個接收計數器 RX_COUNT=0
2:定義一個接收數組 RX_BUF【64】,最多一次接收64B
3:接收中斷中:
i
{
Res =USART_ReceiveData(USART1); //接收一個B
UART1_SendByte(Res);//有需要則反彈數據
RX_BUF[RX_COUNT]=Res;//數據入組
if ((RX_BUF[RX_COUNT]==0X0A)&&(RX_BUF[RX_COUNT-1]==0X0D)) // 判斷接收到結束符
{
RX_COUNT=0;//清除接收計數
uart_cmd=1;//置全局標志,接收到完整 的一組數據
}
else RX_COUNT++;//沒有結束符,繼續等下一個字節
if (RX_COUNT>64)
{
RX_COUNT=0;//計數溢出
UART1_SendByte(Over_flag);//發送出溢出標志,讓對方重新發送
}
}
}
4:在Mian()中
while(uart_cmd)
{
//處理接收到的有效數據
}
|