• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

上位机和单片机的数据如何转换?

Argent 2019-04-23 浏览量:1084
在上位机的开发中,数据的转换是怎么相互转变的。比如说64位的后台服务器对接32位的单片机?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 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型数据

    • 发布于 2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 这个和你多少位系统应该没多大的关系吧。和单片机通信一般以单字节对齐,然后规定上方都以大端格式或小端格式传输数据,按照协议进行传输解析进行了
    • 发布于2019-04-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 64位服务器(上位机)对接32位单片机这个是没有什么问题的。

    因为具体二者间数据的通信是依靠相应的协议,而和具体实现没有关系(或者说这部分是隐蔽的,不可见的),

    只要二者实现了协议的支持,都可以通信。

    举个例子我们浏览器可以在很多系统中(32位、64位),去访问同一个网页都没有问题(我们不知道网页服务器到底是64位系统还是32位系统),这样的保证仅仅因为我们都支持了http协议而已。

    这个和单片机与上位机相连情况其实也是类似的。只要协议支持好了,都无所谓,能保证可以通信。


    因为最最底层的数据都是bit流,一般数据传输的基本单位也就是8bit的字节而已。

    • 发布于2019-04-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

上位机和单片机的数据如何转换?