嵌入式体系经过串口向PC发送的数据往往是16进制数,可是咱们直观的比较数据则是用10进制的方式,这就需求将16进制数转化成10进制数。嵌入式体系经过串口调试帮手将收集的数据发送至PC后,一般先保存成TXT文档。此刻的第一个问题便是怎么经过Matlab读取TXT文件的值。
Matlab的textread函数就能够完成该功用,当然用fopen也能够,但textread 比较简单。其间textread的运用能够参阅help文档。读取txt文件后,就需求将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进制后还需求将数据进行保存。此刻要用到Matlab的dlmwrite函数,输入dlmwrite('c:\b.txt',b,'delimiter', ' '),就能够将得出数据存入新的b.txt文档。