0

您能否提供一些在 Linux 中与 scilab 进行串行通信的示例。当我发出命令时:

h=openserial(1,"9600,n,8,1");

我收到以下错误:

-->h=openserial(1,"9600,n,8,1");
!--error 999 
TCL_EvalStr,  at line 1
bad option "-mode": should be one of -blocking, -buffering, -buffersize, -encoding, -eofchar, or -translation
while executing
"fconfigure file114 -mode 9600,n,8,1"
at line      27 of function openserial called by :  
h=openserial(1,"9600,n,8,1");
4

1 回答 1

0

与例如 Arduino 设备的简单串行通信只需要指定为 openserial 中的第二个参数的波特率。似乎字符串参数(n?)中的其他变量搞砸了。

Scilab 5.4 示例,带有串行工具箱,用于 com 端口 3 和波特率 9600。尝试读取串行之前有 5 秒延迟。

h = openserial(3,"9600");
xpause(5000000);
data = readserial(h);
closeserial(h);

连同您的 arduino 设备上的一些串行垃圾邮件代码,您应该在 Scilab 中每次运行时收到一串数据。

Arduino 设备上的串行示例代码:

int cc=0;

void setup(){
   Serial.begin(9600); 
}

void loop(){
  Serial.println(cc);
  if (cc<10){
  cc++;
  }
  else{
  cc=0;
  }
  delay(100);
}
于 2013-02-09T11:24:40.897 回答