int16 uint8数组转换为串行传输

15的观点(30天)
菲尔。
菲尔。 2017年5月26日
回答: 菲尔。2017年5月26日
你好,我想取一个int16并把它分割为一系列uint8传输通过串行连接(arduino)。
然后我想重新组装两个字节给我回到我原来的int16。任何帮助将不胜感激:)

答案(3)

Guillaume
Guillaume 2017年5月26日
编辑:Guillaume 2017年5月26日
使用 定型 :
exampleint16 = int16 (12345);
sameasuint8 =定型(exampleint16,“uint8”)
restoredint16 =定型(sameasuint8,“int16”)
然而,如果你想要做的就是传播 int16 。你可以 写入文件 它是,它作为一个阅读 uint8 :
%的发送者
写入文件(serialobj yourint16,“int16”)
%的读者
从文件中读(serialobj 2“uint8”)
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年5月26日
如果你写入文件()然后int16一定要检查串行 ByteOrder 财产。
如果分成uint8使用定型(),那么你需要照顾自己的尾数法问题。为此你需要知道,如果你定型16位数量成uint8然后在所有当前的MATLAB实现,第一个字节的结果 至少 重要的字节。

登录置评。


菲尔。
菲尔。 2017年5月26日
编辑:菲尔。 2017年5月26日
你的回答没问题但是在Matlab仿真软件得到港口尺寸错误。金宝app这可能是由于一个事实:我可以是不同的尺寸吗?任何想法如何应对? \

菲尔。
菲尔。 2017年5月26日
好一点研究结果指定数据大小在模型浏览器中工作原理::)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!