使用加密狗的Matlab蓝牙连接。需要读取连续数据

时间:2015-03-23 02:37:24

标签: matlab bluetooth accelerometer

我通过蓝牙将加速度计数据发送到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>

1 个答案:

答案 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);

我不再收到错误。这只是关闭序列的操作顺序。