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)
{
//处理接收到的有效数据
}
|