串口中怎样接收一个完整数据包的解析.docxVIP

  • 10
  • 0
  • 约2.15千字
  • 约 4页
  • 2017-06-11 发布于重庆
  • 举报

串口中怎样接收一个完整数据包的解析.docx

串口中怎样接收一个完整数据包的解析

这里以串口作为传输媒介,介绍下怎样来发送接收一个完整的数据包。过程涉及到封包与解包。设计一个良好的包传输机制很有利于数据传输的稳定性以及正确性。串口只是一种传输媒介,这种包机制同时也可以用于SPI,I2C的总线下的数据传输。在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题。一、根据帧头帧尾或者帧长检测一个数据帧1、帧头+数据+校验+帧尾这是一个典型的方案,但是对帧头与帧尾在设计的时候都要注意,也就是说帧头、帧尾不能在所传输的数据域中出现,一旦出现可能就被误判。如果用中断来接收的话,程序基本可以这么实现:unsigned char recstatu;//表示是否处于一个正在接收数据包的状态unsigned char?ccnt;????? //计数unsigned char packerflag;//是否接收到一个完整的数据包标志unsigned char?rxbuf[100];//接收数据的缓冲区void UartHandler(){?????? unsigned char tmpch;?????? tmpch = UARTRBR;?????? if(tmpch 是包头)????????????????????????? //检测是否是包头?????? {????????????? recstatu = 1;??????????? ccnt?? = 0 ;?????

文档评论(0)

1亿VIP精品文档

相关文档