如何动态更改Simulink xPC目标串行通信速度

时间:2008-09-04 05:21:47

标签: matlab simulink xpc-target

我有一个xPC目标应用程序,通过RS-232与设备通信。我正在使用xPC串行块。
要与此设备通话,我首先必须以默认速度启动,比如9600 bps,请求将速度更改为57600 bps,然后更改我身边的速度以匹配它。
xPC块的问题在于它会强制您在运行之前选择特定的速度,并且无法在运行时更改它。有没有办法/技巧/黑客这样做?

3 个答案:

答案 0 :(得分:1)

到目前为止,这是我的看法。我不认为可以使用现有的Simulink块来完成。我想我将不得不采用Matlab附带的xpcserial C代码,采用设置RS-232速度的代码,并将其包装在我自己的S函数中。

答案 1 :(得分:1)

我同意你的意见:我不认为可以做到,我害怕。

进一步思考后,我意识到在我的xPC系统中,我收到一个编译警告,告诉我块我正在使用不支持运行时的采样时间变化;这意味着一般来说这并非不可能......

答案 2 :(得分:0)

伊恩,

我之前所做的就是修改XPC目标背后的寄存器。这很难看,但xPCTarget首先是丑陋的。

尝试修改线路控制寄存器并直接设置除数 - 您只需要串口IO地址,就知道了。

无论如何都值得一试,无论如何你都必须这样做。