Я пытаюсь установить последовательную связь между Arduino и MATLAB через USB. У меня есть этот базовый код, куда я посылаю «привет» из MATLAB в Arduino, и я читаю его обратно и печатаю в MATLAB. Однако «привет», отправленный из Arduino, выглядит как странный текст.
Arduino:
void setup() {
Serial.begin(57600);
Serial.println("ready");
}
void loop() {
String input;
if (Serial.available()) {
char c = Serial.read();
while (c != '\n') {
input += c;
c = Serial.read();
}
Serial.println("I received: " + String(input));
input = "";
}
}
MATLAB:
s = serial('COM3');
set(s, 'BaudRate', 57600);
fopen(s);
pause(1);
first = strtrim(convertCharsToStrings(fgetl(s)));
if first == "ready"
fprintf(s, '%s', 'hello\n');
for i = 1:10
tline = strtrim(convertCharsToStrings(fgetl(s)));
disp(tline);
if size(tline, 2) > 0
fprintf(s, '%s', 'hello\n');
end
end
end
fclose(s);
Вывод в MATLAB выглядит следующим образом:
I received: hÿÿÿÿÿÿeÿÿÿÿÿÿÿlÿÿÿÿÿÿÿÿlÿÿÿÿÿÿoÿÿÿÿÿÿÿ
Кроме того, я был бы признателен за любую конструктивную критику в отношении улучшения моего кода для последовательной связи. Это мой первый раз, и я пытаюсь получить простую настройку, в которой Arduino и MATLAB по очереди пишут и читают. Спасибо.