串口发送固定帧的识别接收
最近做项目刚好需要需要串口接收固定的帧,写了一段测试代码
用的 帧头 数据 帧尾的方式 ,记录一下
void UART0_IRQHandler(void)
{
int Uart0RecvBuf; // UART0 RX DATA
Uart0RecvBuf = LPC_UART0->RBR; //读取接收数据
if(Uart0RecvBuf == 'X')
{
recstatu = 1;
ccnt = 0 ;
packerflag = 0;
}
if(Uart0RecvBuf == '#' && recstatu ==1)
{
recstatu = 0;
packerflag = 1; //用于告知系统已经接收到一个完整的数据包
}
if(recstatu ==1)
{
rxbuf[ccnt++] = Uart0RecvBuf;
}
UART0_SendByte(Uart0RecvBuf);
if(packerflag == 1)
{
printf("\n接收成功,数据帧为:%s\n",rxbuf);
packerflag = 0;
memset(rxbuf, 0, sizeof(rxbuf));
}
}