首页 文章

与simulink串行通信

提问于
浏览
1

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

2 回答

  • 3

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

    EDIT following discussion in the comments

    关于缩放,这里's a snapshot of something I did a long time ago. It'使用CAN而不是串行,但原理是相同的 . 在这里,它不得不担心缩放负数 . 65535是 uint16 的最大值,我会在接收端进行反向缩放 . 转换为 uint16 (或 uint8 ,如您的情况,它会自动舍入值,您可以在块掩码中指定该行为) .

    enter image description here

  • 0

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

相关问题