我正在尝试使用simulink(matlab 7.1)和d-space通过串口发送和接收数据。我想发送和接收的值是双倍的。不幸的是,发送和接收块使用uint8值。我的问题是如何将双精度转换为uint8值的数组,反之亦然?是否有用于此的simulink块或者我应该使用嵌入式matlab函数吗?
答案 0 :(得分:3)
使用恰当命名的Data Type Conversion块,就是这样。
在评论中讨论后编辑
关于缩放,这里是我很久以前做过的事情的快照。它使用CAN而不是串行,但原理是一样的。在这里,信号总是正的稍微容易一点,所以我不必担心缩放负数。 65535是uint16
的最大值,我会在接收端进行反向缩放。转换为uint16
(或uint8
时,它会自动舍入值,您可以在块掩码中指定该行为。
答案 1 :(得分:0)
在simulink中有pack和unpack块,在simulink库浏览器中搜索它们。你可能需要额外的产品,不知道哪个。