😃本文介绍使用matlab写入数据到文件中,并读取文件内容通过串口发送到下位机。
clc;clear;
scom1 = instrfind('Type', 'serial', 'Port', 'COM2');
if isempty(scom1)
scom1 = serial('COM2');
else
fclose(scom1);
scom1 = scom1(1);
end
scom1.Baudrate=115200;
scom1.OutputBufferSize = 2048;
fopen(scom1);
其中串口的配置可根据下图自行更改。
filename = 'wave_file.bin';
fid = fopen(filename, 'w');
for i = 0:1024
fwrite(fid,i, 'uint16', 'ieee-be');
end
fclose(fid);
其中fwrite函数中的数据格式有如下几种。
以及写入字节顺序如下。
fid = fopen(filename, 'r');
sendData = fread(fid, 2048, 'uint8');
fwrite(scom1, sendData);
fclose(fid);
其中fread函数中可更改数据长度,数据格式。
%recData = fread(scom1, 2048, 'uint8');
%fid = fopen(filename, 'w');
%fwrite(fid,recData, 'uint8');
%fclose(fid);
fclose(scom1);
delete(scom1);
clear scom1 ;
disp('finished!');
通过虚拟串口软件创建COM1<->COM2,Matlab程序中打开COM2,串口助手打开COM1。
串口助手接收到2048个字节数据,并以十六进制显示。因为写入数据格式为‘uint16’,‘ieee-be’,故 0=0x0000,1=0x0001,2=0x0002-----1023=0x03FF。
wave_file.bin文件内容如下,其显示的是ASCII码。