我通过蓝牙将加速度计数据发送到Matlab,我将处理它并构建GUI。
我目前正在努力将蓝牙数据导入Matlab。我正在使用加密狗将数据传输到COM18端口。这是我正在使用的代码:
s= serial ('COM18');
set(s,'DataBits',8);
set(s,'StopBits',1);
set(s,'BaudRate',9600);
set(s,'Parity','none');
fopen(s);
当我从头开始(断开并连接蓝牙和加密狗,重新打开matlab等)端口成功打开并允许我读取数据。但是,如果我关闭然后尝试打开,它会给我一个错误:
使用serial / fopen时出错(第72行) 打开失败:端口COM 18不可用。可用端口:COM6,COM7,COM19。 使用INSTRFIND确定是否连接了其他仪器对象 到所请求的设备。
我知道我的设备没有连接任何其他设备。所以我必须断开我的蓝牙,加密狗,并重新启动matlab。
有更有效的方法吗?
另外,我能够将加速度计的值输入Matlab,但我不知道如何让它们连续。每次发送512个字节,如果我的ValuesReceived超过12000,我再次必须重新启动我的蓝牙设备以获得更多值。我已经尝试了flushoutput,但它没有用。关于如何将连续数据输入Matlab的任何想法,以便我可以在我的GUI中处理它?</ p>
答案 0 :(得分:0)
我弄明白了这个问题。为了不再出现这个错误,我只需按照顺序
fclose(s);
delete(s);
clear s;
然后当我做
s= serial ('COM18');
set(s,'DataBits',8);
set(s,'StopBits',1);
set(s,'BaudRate',9600);
set(s,'Parity','none');
fopen(s);
我不再收到错误。这只是关闭序列的操作顺序。