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

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

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

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第1张图片

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

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第2张图片

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第3张图片

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

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

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第4张图片

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

memory_initialization_radix=10;
memory_initialization_vector=

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第5张图片

 

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

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第6张图片

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第7张图片

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第8张图片

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

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第9张图片

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

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

usb传输时的数据格式处理(十进制 十六进制的转换)_第10张图片

你可能感兴趣的:(excel,1024程序员节)