Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何动态更改Simulink xPC目标串行通信速度_Matlab_Simulink_Xpc Target - Fatal编程技术网

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

Matlab 如何动态更改Simulink xPC目标串行通信速度,matlab,simulink,xpc-target,Matlab,Simulink,Xpc Target,我有一个xPC目标应用程序,它通过RS-232与设备通信。我正在为此使用xPC串行块。 要与此设备通话,我首先必须以默认速度启动,比如9600 bps,请求将速度更改为57600 bps,然后更改我这边的速度以匹配它。 xPC块的问题在于,它强制您在运行之前选择特定的速度,并且不能在运行时更改它。有什么方法/技巧/黑客可以做到这一点吗?这是我目前的看法。我不认为可以使用现有的Simulink块来完成。我想我必须使用Matlab附带的xpcserial C代码,使用设置RS-232速度的代码,并将

我有一个xPC目标应用程序,它通过RS-232与设备通信。我正在为此使用xPC串行块。
要与此设备通话,我首先必须以默认速度启动,比如9600 bps,请求将速度更改为57600 bps,然后更改我这边的速度以匹配它。

xPC块的问题在于,它强制您在运行之前选择特定的速度,并且不能在运行时更改它。有什么方法/技巧/黑客可以做到这一点吗?

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

我同意你的看法:恐怕我认为这是做不到的

经过进一步思考,我意识到在我的xPC系统中,我收到一条编译警告,告诉我正在使用的块在运行时不支持样本时间更改;这意味着这通常不是不可能的…

Ian

我以前在这方面所做的只是修改XPC target后面的寄存器。这很难看,但xPCTarget首先是难看的

尝试修改行控制寄存器并直接设置除数——您所需要的只是串行端口IO地址,这一点您是知道的

无论如何,这是值得一试的,你无论如何都得去做