通过串口向上位机发送的数据往往是 16 进制数,但是我们直观的比较数据则是用 10 进
制的形式,这就需要将 16 进制数转化成 10 进制数。
通过串口调试助手将采集的数据保存成 TXT 文档后第一个问题就是 Matlab 如何读取 TXT
文件的值,matlab 有个函数 textread 就可以实现,当然用fopen 也可以,但 textread 比较简
单。textread 的使用可以参考 help 文档。将 16 进制转化成 10 进制用到了 matlab 的另外一
个函数 hex2dec(a),这个函数的具体用法也见 help。
读取二进制 txt 文件:
假如 txt 文档中内容为 0001 0010 0011 0100 1000,保存在 pin.txt 文档中
使用 a=textread('pin.txt','%s')'
a =
'0001' '0010' '0011' '0100' '1000'
可以看到数据保存为了 char 格式。
使用 bin2dec
b=bin2dec(a)'
b =
1 2 3 4 8
可以看到成功地转换成了十进制文件。
十六进制文件:
0001 0010 0011 0100 1000 A B C AA
a=textread('pin.txt','%s')'
a =
'0001' '0010' '0011' '0100' '1000' 'A' 'B' 'C' 'AA'
可以看到成功读取了文件。
b=hex2dec(a)'
b =
1 16 17 256 4096 10 11 12 170
读取完毕。
将 16 进制数据转换成 10 进制后还需要将数据进行保存。可以用 dlmwrite 函数,
dlmwrite('c:.txt',b,'delimiter', ' ') %将得出数据存入新的 b.txt 文档