• usb传输时的数据格式处理(十进制 十六进制的转换)


    因为使用usb和单片机进行数据交互时,需要使用纯二进制文件,如果单纯发送txt文件,读进去的就是改文件的ascii码数值。

    1.怎样将excel的十进制数据转换成纯二进制文件

    打开excel,复制想要的数据,最好是一列:

    打开16进制编辑器:(我用的是hex editor neo

    首先调整数据格式为10进制,数据位数根据自己想要的设成byte(8位),words(16位),double words(32位):

     然后将光标放在第一个位置,或者点击ctrl all,将数据复制到编辑器当中,然后将点击上面的view,选择display as 的16进制,选择columns的自定义,选择展示两列数据(最少好像就是两列,针对这个编辑器来说)

     这样就生成纯二进制文件,上位机直接发送改文件,收到的就是这样顺序排列的数据了

    2.将上面的数据,转化为coe文件,可以在仿真时,放在rom当中使用(针对vivado)

    在excel里面打开一列数据,全部选中,右击选择设置单元格式,然后在数字,自定义里面,选择@,然后在后面加一个逗号

     然后在加两行,在最前面写上:

    memory_initialization_radix=10;
    memory_initialization_vector=

    然后再新建一个文本文件,将后缀改成coe,就可以了:

     

    3.excel里面怎样将一列数乘以一个数(主要是用于将小数转化为整数)

    在空白单元格处,写入想要乘的数据,然后复制改单元格:

     然后选中想要乘的数据,右键选择 选择性粘贴:

     如果说最后结果下面产生了很多行的0,就可以在左上角输入,想要删除的行(例如:  270443:1048576),然后点击回车,就会选中这些行了,然后点击删除就行,但是空行可能删除不掉,就可以点击ctrl all,复制所有数据,再打开一张表格,粘贴就好了,就没有空格了。

    4.怎么将excel的两列数据,变成一列,按照“Z”型排列(主要是编辑器复制过来的数据是两列):

    首先,上面从编辑器复制过来的数据,是在一列里面,所以要先分列,点击数据,然后点击分列,再点击智能分列,或者按照数据特点,根据空格,小数点,位宽等都可以:

     然后点击分好之后的两列数据,复制之后,新建一个空白word文档,点击粘贴:

    然后点击整个表格之后,点击插入,选择表格,就有个表格转文本,然后点击段落,然后点击确定之后,就可以看到数据都变成一列了,然后复制所有到excel里面,就变成一列数据了:

  • 相关阅读:
    CGAL+QT
    ubuntu docker 部署 vue 项目
    K210入门必看(MAIX DOCK)(一)
    Docker - Docker启动的MySql修改密码
    探索TiDB Lightning源码来解决发现的bug
    linux 文件管理
    C#8.0本质论第十一章--异常处理
    志愿服务管理系统
    JVM运行时数据区
    QT画图板
  • 原文地址:https://blog.csdn.net/qq_43811597/article/details/127702341