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