64位服务器与32位单片机的数据是通用的,以float数据为例,都是小字节在前,4个字节一个float,所以可以通过4个8位数据来通讯然后组装成float。
举个例子:
发送端把float型的floatBuff转为char型的charBUff可以这样写
char *charBuff = (char *)floatBuff;//把float数组变成char数组
接收端把char型的buff转为float型的tmpf可以这样写
float *tmpf=(float*)buff;
我写代码的风格比较飘逸的,再大的数组,也是一个指针就能完成数据类型转换。
如果是int型数据,64位服务器也是与32位单片机也是通用的。代码风格同上。
我倒是遇到过一种有趣的情况,8位单片机的int是16位的,只有两个字节,数据格式上相当于32位系统里的short。数据转换时候,上位机需要用一个short去存来自8位单片机的int型数据