Я пытаюсь записать в последовательный порт с использованием кода в Matlab. Однако все, что я стараюсь, в первую очередь приводит к сообщению об ошибке, а затем заставляет Matlab думать, что порт недоступен.Проблема с записью на последовательный порт между Matlab и C с использованием mbed
код MATLAB, который я использую выглядит следующим образом:
function test()
TIMEOUT = 5; %time to wait for data before aborting
XPOINTS = 50; %number of points along x axis
%create serial object to represent connection to mbed
mbed = serial('COM18','BaudRate', 9600, 'DataBits', 8); %change depending on mbed configuration
%set(mbed,'Timeout',TIMEOUT); %adjust timeout to ensure fast response when mbed disconnected
fopen(mbed); %open serial connection
input = 1;
fprintf(mbed, input);
x=0;
while (x == 0)
values = fscanf(mbed, '%d');
disp(values);
end
fclose(mbed);
end
сообщение об ошибке, которое появляется
Error using serial/fprintf (line 144)
Error: An error occurred during writing.
Error in test (line 14)
fprintf(mbed, input);
Моя главная проблема заключается в том, что из всего, что я могу найти в Интернете, кажется, скажем, что команда fprintf должна работать. Я также пробовал линию
fwrite(mbed, input);
который приходит с по существу тем же сообщением об ошибке.
После того, как я попробовал этот раз следующее сообщение об ошибке, что я получаю это:
Error using serial/fopen (line 72)
Open failed: Port: COM18 is not available. Available ports: COM1.
Use INSTRFIND to determine if other instrument objects are connected to the requested device.
Error in test (line 12)
fopen(mbed); %open serial connection
Что я могу показаться только исправить, сохранив свою программу, а затем открыть точно такой же. К моменту попытки mbed определенно подключен к правильному COM-порту.
Мой вопрос: где я ошибаюсь в строке fprintf? Это правильный способ общения с последовательным портом или mbed?
«Используйте INSTRFIND, чтобы определить, подключены ли другие приборы к запрашиваемому устройству». Вы на самом деле пытались это сделать? Поскольку вы не закрыли старый объект последовательного порта, оборудование уже используется. –
У меня нет, я пойду и правильно использую это спасибо. Вероятно, это вызывает вторую ошибку. –