Как заставить Serial Monitor работать с библиотекой Serial Commands?
Я использую библиотеку SerialCommands
и просто пытаюсь напечатать первое текстовое сообщение в Serial Monitor. Но этот код почему-то не работает.
Ожидаемый результат заключается в том, что последовательный монитор печатает сообщение ("Hello world !!"), когда я пишу "hello" и нажимаю "enter" в качестве ввода. Что-то не так или это работает не так, как я ожидал? Есть ли другой способ проверить, работают ли эти команды? Есть ли что-то, что я упустил?
#include <SerialCommands.h>
char serial_command_buffer_[32];
SerialCommands serial_commands_(&Serial, serial_command_buffer_, sizeof(serial_command_buffer_), "\r\n", ",");
void cmd_hello(SerialCommands* sender) {
sender->GetSerial()->println("Hello world !!");
}
SerialCommand cmd_hello_("hello", cmd_hello);
void cmd_unrecognized(SerialCommands* sender, const char* cmd) {
sender->GetSerial()->print("ERROR: Unrecognized command [");
sender->GetSerial()->print(cmd);
sender->GetSerial()->println("]");
}
void setup() {
Serial.begin(9600); // Последовательная связь начинается со скорости 9600 бит/с
serial_commands_.AddCommand(&cmd_hello_);
serial_commands_.SetDefaultHandler(&cmd_unrecognized);
Serial.println("Ready");
}
void loop() {
serial_commands_.ReadSerial();
}
@ChesuCR, 👍0
Обсуждение1 ответ
Лучший ответ:
Вы определили, что каждая команда будет заканчиваться \r\n
. Поэтому вам нужно выбрать «Both NL & CR» в качестве окончания строки в последовательном мониторе, чтобы он добавил окончание строки к вашей команде. Если вы не отправите правильное окончание строки, библиотека подумает, что команда еще не завершилась, и, таким образом, ничего не сделает, пока не получит правильное окончание строки.
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
- Как получить уникальный идентификатор для всех плат Arduino?
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Тайм-аут связи Arduino Mega с ошибкой программатора
Вы выбрали правильную строку, заканчивающуюся в последовательном мониторе?, @chrisl
Ах, это была моя ошибка, спасибо @chrisl. Мне пришлось выбрать «Оба NL и CR» («\r\n»). Если вы хотите опубликовать это как ответ, я приму его, @ChesuCR