Последовательный шлейф не работает с подключенными перемычками
Я новичок в программировании Arduino. Прежде чем приступить к чему-то более сложному, я сначала пытаюсь получить некоторые очень базовые функции, поэтому, используя некоторые примеры из альбома для рисования, я пытаюсь заставить работать самую базовую последовательную петлю. Я использовал скетч SerialEvent
как точку отсчета, чтобы придумать это:
String inputString = "";
bool stringComplete = false;
int inByte = 0;
void setup() {
// инициализируем сериал:
Serial.begin(9600);
// ждем подключения последовательного порта. Требуется только для родного порта USB
while (!Serial) {
;
}
// резервируем 200 байт для inputString:
inputString.reserve(200);
Serial.println("Hello world\n");
}
void loop() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n') {
stringComplete = true;
}
}
if (stringComplete) {
Serial.println(inputString);
inputString = "";
stringComplete = false;
}
}
Когда я прошиваю этот образ на Arduino, а затем открываю последовательный монитор, все работает нормально. Как показано ниже, все, что я печатаю, возвращается ко мне после нажатия Enter:
Однако, когда я соединяю контакты TX и RX на плате, как показано здесь, все обстоит иначе:
Как только я это сделаю, последовательная связь полностью перестанет отвечать. Он по-прежнему печатает «Hello world» в начале, но больше не возвращает отправленные сообщения, как вы можете видеть здесь:
Я должен сказать, что даже когда он больше не возвращает сообщения, желтый индикатор «RX» на плате все еще ненадолго загорается, когда я нажимаю Enter. Но индикатор «TX» не горит. Обратите внимание, что оба индикатора загораются, если я отсоединяю перемычку.
Мне кажется, что то, что я пытаюсь сделать здесь, очень простое, и это не должно быть так сложно. Есть ли что-то очевидное, что я упускаю? Есть совет?
@soapergem, 👍1
Обсуждение2 ответа
Лучший ответ:
Вы пытаетесь использовать последовательный порт, подключенный к двум устройствам одновременно. время:
- к встроенному последовательному/USB-мосту, который обеспечивает связь с вашим компьютер
- какое-то неопределенное внешнее последовательное устройство.
Подключение передатчика (передающий контакт) к двум приемникам — это нормально. запись будет получена обоими.
Подключение вашего RX к двум передатчикам не работает, вы можете читать данные, отправленные одним передатчиком.
На плате Uno вдоль последовательного соединения установлены резисторы. между основным MCU и последовательным/USB-мостом. Благодаря резистору на линии RX вы можете подключить внешнее устройство к последовательному порту MCU. порт: TX устройства имеет приоритет над мостом USB. Это означает, что основной MCU больше не может получать то, что вы отправляете с последовательного монитора.
Не могу комментировать, получается, что этот пример, который вы работаете, не очень подходит, так как RX и TX подключены напрямую к USB-подключению (для Arduino UNO), то есть вы можете использовать только эти пины Пока он загружается из Sketch, используется внешний источник питания для подключения Arduino, я рекомендую работать, если у вас есть датчик для проверки передачи данных через последовательный порт. Приветствую
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- Чтение последовательных данных с Arduino с помощью кода C
- Arduino wrap или подкласс print() для работы с несколькими Serial
- Arduino перестает отправлять/принимать данные через Serialport через случайное время
- Как загрузить код без закрытия PuTTY
- Serial печатается дважды?
- Последовательная связь ПК с Arduino с использованием C и отправка через NRF
- Node.js не может распознавать символы из последовательного порта
поставь ATmega328p в сброс для проверки шлейфа или хотя бы залей скетч без Serial.begin. RX/TX 328p подключается к RX/TX чипа USB и к контактам RX, TX на разъеме. соединение контактов на разъеме вместе нарушает связь между 328p и чипом USB, @Juraj