因为使用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里面,就变成一列数据了: