c语言封装通信协议,通信协议的解包打包.doc

本文介绍了如何在C语言中封装通信协议,特别是针对单精度浮点数的打包与解包。通过理解IEEE754协议,将单精度浮点数转换为字节并发送,再在接收端按照协议还原。文中还提到了数据打包的基本概念,并给出了一种简单数据结构:帧头+四字节数据+帧尾,以及简单的解包过程。
摘要由CSDN通过智能技术生成

通信协议的解包打包

篇一:freescale单片机与PC串口通信发送单精度浮点小数打包与解包

freescale单片机与PC串口通信发送单精度浮点小数打包与解包

by smile跃日少年

先说一下我做的工作:PC向单片机发送三个单精度浮点数,然后单片机处理这三个数据,得到想要的控制量。PC上位机使用LabVIEW,单片机使用飞思卡尔MC9S12XMAL。数据不是仪器控制类的,不是这边发送一个命令,那边接收到命令,再返回一个信息这样的;我做的是一端一直发送数据,而不管另一端是否接收。

无论是哪种单片机,串口发送和接收数据都以字节为单位的。PC与单片机通信一般都是用二进制流,这样便于打包与解包,且速度快,不容易出错。

如果你要发送的只是一个字节的数据,那么可以直接接收,很容易转换和处理。但是我们发送的信息往往超过一个字节,比如说浮点小数。单片机是一个一个字节发送的,浮点小数不能直接发送到串口,必须先把浮点小数按一定协议转换成字节。我们都知道无论什么数据在计算机中的存储形式都是二进制,整数是,小数也是。单精度小数的存储国际上使用ieee754协议,一个单精度浮点小数在计算机用四个字节来存储,这样很自然能想到,可以把单精度浮点小数转换成计算机存储的四个字节的形式,再发送到串口,接收方再按照ieee754协议转换成单精度浮点小数,这样就完成了数据的传递。 1.ieee754协议单精度转字节

先看看单精度浮点小数在计算机中的存储形式:

float 数据类型总共占据 32 个位 bit,其中第一个位为数据符号(Symbol,在下面简称为S),该

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值