从来没用过数据打包发送数据,虽然原理都清楚却不知道如何下手。不知道怎么做,现在程序使用的就是CsIO的功能使用getchar或者scanf的方式通过串口接收串口猎人的输入。如何使用猎人发送一段数据,这些数据又该怎么进入下面这段程序中的UartHandler()函数?如果大家有串口数据打包传输的程序能否发我参考一下。
下面是一段我找到的解包机制程序,
unsigned char recstatu;//表示是否处于一个正在接收数据包的状态 unsignedchar ccnt; //计数 unsigned char packerflag;//是否接收到一个完整的数据包标志 unsigned char rxbuf[100];//接收数据的缓冲区 void UartHandler() { unsigned char tmpch; tmpch = UARTRBR; if(tmpch 是包头) //检测是否是包头 { recstatu = 1; ccnt = 0 ; packerflag = 0; return ; } if(tmpch是包尾) //检测是否是包尾 { recstatu = 0; packerflag =1; //用于告知系统已经接收到一个完整的数据包 return ; } if(recstatu==1) //是否处于接收数据包状态 { rxbuf[ccnt++]= tmpch; } }
|