我想通过串行 COM 向 Matlab 发送一个浮点数并将其解释为单精度浮点数。
我可以将数据作为字节数据包通过串行发送。
所以在发送方我将 32 位浮点数移位 8,将其屏蔽并发送
(byte)((number >> 8) & 0x000000FF)
(byte)((number >> 16) & 0x000000FF)
...
\r\n (line termination)
现在,在 Matlab 上,我连接到 COM 并使用fscanf(s,'%f')
where s 是串行实例来接收。它读取字节直到终止行。
现在,问题是 Matlab 上的输出与我发送的不一样。我相信问题在于不同的浮点表示或不同的发送顺序。
例如。如果我发送小数1.2 (0x3f99999a)
,Matlab 打印1.5315e+010
我可能做错了什么?
编辑:
Matlab fscanf http://www.mathworks.co.uk/help/matlab/ref/fscanf.html