串口接收的思路
在avr论坛上看到的 关于串口接收的方法 对项目有点帮助就记录下了
感谢网友 AVRBBS 提供的方法
static unsigned char i;//定义一个静态变量,用于记录接收到那一个字节了。
switch (i) {
case:0
if (udr == 0xAA) //收到第一个数据,判断是否为0XAA启动字节。
i = i + 1; //同步成功,增加变量 i ,进入下一步操作。
break;
case:1
在这一步取第符长度,并把它保存在你定义的接收数组里面,在后面接收数据的时候用的到。
case:2
接收命令字节,存入到数组里面。
。。。。。。。上面是大概流程,供你参考学习,下面的具体程序需要你自己完成。
case:7
判断帧停止位(0x55)、判断前一位校验是否正确,如果两项都成功了,那么做下面两件事:
1、根据你的情况作出一定动作,或者打上某个标志,以标志你接收完成。
2、记得把变量 i = 0复位。
浙公网安备 33010602011771号