以小端方式向串口发送数据

Send data to serial port in little endian

我正在尝试将一些浮点数据发送到串行端口。默认情况下,数据以大端方式传输。我正在使用以下代码:

ser = serial('COM1');
set(ser,'BaudRate',115200);
fopen(ser);
fwrite(ser,1.7,'single'); %sends in big-endian format

fwrite 的 Matlab 文档确实提到了格式:

fwrite(fileID,A,precision,skip,machinefmt)

machinefmt 可以更改字节顺序,但在写入串口时似乎不起作用。

fwrite(ser,1.7,'single',0,'ieee-le');
fwrite(ser,1.7,'single',0,'l');

这两个命令都会抛出错误:

Error using serial/fwrite (line 124)

Too many input arguments.

是否有以小端格式发送数据的解决方法?

我想您已经阅读了写入文件的文档。

在最新版本的 Matlab 中,至少 fwrite 有自己的帮助,如果你阅读它,你会发现字节顺序是 属性。

首先,创建端口:

ser = serial('COM1');

然后检查或更改其字节顺序:

get(ser,'ByteOrder')
set(ser,'ByteOrder', 'littleEndian')

顺便说一句,我认为默认选项是小端,所以你可能想尝试 bigEndian

来源:Matlab help