×
单片机 > 单片机程序设计 > 详情

如何通过校验和的方式实现单片机的数据传输与控制

发布时间:2020-06-08 发布时间:
|

通过校验和的方式实现数据传输与控制,例如控制LED灯、蜂鸣器、发送数据到上位机。

由于是数据传输与控制,需要定制一个结构体、共用体方便数据识别,同时增强可读性。从数据帧格式定义中可以定义为“PKT_SUM_EX”类型。

识别数据请求什么操作可以通过以下手段来识别:识别数据头部1、数据头部2,操作码。当完全接收数据完毕后通过校验该数据得出的校验值与该数据的尾部的校验值是否匹配。

若匹配,则根据操作码的请求进行操作;若不匹配则丢弃当前数据帧,等待下一个数据帧的到来。


 

结构体定义:

/*使用结构体对数据包进行封装

*方便操作数据

*/

typedef struct _PKT_SUM

{

UINT8 m_ucHead1; //首部1

UINT8 m_ucHead2; //首部2

UINT8 m_ucOptCode; //操作码

UINT8 m_ucDataLength; //数据长度

UINT8 m_szDataBuf[16]; //数据

UINT8 m_ucCheckSum; //CRC16为2个字节

}PKT_SUM;

/*使用共用体再一次对数据包进行封装

*操作数据更加方便

*/

typedef union _PKT_SUM_EX

{

PKT_SUM r;

UINT8 p[32];

} PKT_SUM_EX;


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址