Я пытаюсь запустить базовую последовательную связь. Мой код arduino показан ниже.Последовательная связь Matlab & Arduino
void setup()
{
Serial.begin(9600);
Serial.println('a');
char a = 'b';
while (a != 'a')
{
a = Serial.read();
}
}
void loop()
{
}
и мой MATLAB код:
delete(instrfindall);
s = serial('/dev/tty.usbmodem1421');
set(s, 'BaudRate', 9600);
set(s, 'DataBits', 8);
set(s, 'StopBits', 1);
set(s, 'Parity', 'none');
set(s, 'Terminator', 'LF');
fopen(s);
% VERIFY SERIAL COMMUNICATION HAS BEEN SETUP
a = 'b';
while (a~='a')
a = fread(s,1,'uchar');
end
if (a == 'a')
disp('Serial read')
end
fprintf(s,'%c','a');
mxbox = msgbox('Serial Communication Initialized'); uiwait(mxbox);
код MATLAB выполняет и я получаю окно сообщения говорит мне, что он инициализирован, однако переменная не читается успешно и цикл в то время как выходы преждевременно, отладка Я обнаружил, что на самом деле это только петли для одной итерации, а затем продолжается. «Серийное чтение» никогда не отображается.
Любая помощь будет оценена, спасибо заранее.
Примечание
добавления disp(size(a));disp(double(a));
после fread
дали выход и нет выхода соответственно
Для целей отладки, вы могли бы добавить 'DISP (размер (а)); DISP (двойной (а)), 'после' fread' линии и добавить вывод на свой вопрос? – Daniel