Matlab读取字节不正确的二进制数据输入/解释为uint32

时间:2013-08-22 17:47:16

标签: matlab serial-port endianness

在撰写这篇文章时,我尝试了b = fread(s,1,'uint32')

这会很好用,但我的糟糕数据首先发送给LSB! (不,我无法改变这一点)

之前,我正在使用b = fread(s,4)',它给出了一个类似于[47 54 234 0]的向量。 这是我的输入流:

0A
0D 39 EA 00 04 39 EA 00
4B 39 EA 00 D0 38 EA 00
0A
etc...

我可以通过

成功分隔0x0A
while ~isequal(fread(s, 1), 10) end

基本上我需要得到[00EA390D 00EA3904 00EA394B 00EA38D0]所代表的uint32s数组 swapbytes的文档对我没什么帮助,uint32操作符对各个元素进行操作!!

1 个答案:

答案 0 :(得分:1)

matlab fread函数直接支持小端数据库格式。只需将fread函数的第5个参数设置为字符串" L"。

b = fread(s, 4, 'uint32',0,'l');