与simulink串行通信

时间:2013-10-25 13:46:22

标签: matlab serial-port simulink

我正在尝试使用simulink(matlab 7.1)和d-space通过串口发送和接收数据。我想发送和接收的值是双倍的。不幸的是,发送和接收块使用uint8值。我的问题是如何将双精度转换为uint8值的数组,反之亦然?是否有用于此的simulink块或者我应该使用嵌入式matlab函数吗?

2 个答案:

答案 0 :(得分:3)

使用恰当命名的Data Type Conversion块,就是这样。

在评论中讨论后编辑

关于缩放,这里是我很久以前做过的事情的快照。它使用CAN而不是串行,但原理是一样的。在这里,信号总是正的稍微容易一点,所以我不必担心缩放负数。 65535是uint16的最大值,我会在接收端进行反向缩放。转换为uint16(或uint8时,它会自动舍入值,您可以在块掩码中指定该行为。

enter image description here

答案 1 :(得分:0)

在simulink中有pack和unpack块,在simulink库浏览器中搜索它们。你可能需要额外的产品,不知道哪个。