Почему echo "R"> /dev/ttyUSB0 не работает, но на том же ПК работает последовательный монитор в Arduino IDE?
У меня странная проблема. Я использую Ubuntu и NodeMCU si, подключенные к USB. У меня есть очень простой скетч, работающий на нем, когда он читает букву "R" на серийном номере, он включает реле.
Когда я открываю последовательный монитор в Arduino IDE, набираю букву "R" и отправляю его, он работает отлично. Однако, когда я запускаю команды ниже, он ничего не делает:
stty -F /dev/ttyUSB0 115200
echo "R" > /dev/ttyUSB0
Я пробовал запускать одни и те же команды на разных КОМПЬЮТЕРАХ с Ubuntu, и эти системные команды работают просто отлично.
Я также попытался скопировать точно такую же конфигурацию из stty-a-F /dev/ttyUSB
с ПК, где он работает, на ПК, где он не работает, но это тоже не помогло.
Я не думаю, что это проблема с драйверами, потому что если бы это было так, то я предполагаю, что это также не будет работать с последовательным монитором.
Спасибо за любую помощь или подсказки заранее.
@Frodik, 👍0
Обсуждение2 ответа
Лучший ответ:
Итак, я решил эту проблему, но только наполовину. Я использовал NodeMCU с CH340 ... и этот контроллер работал только в последовательном мониторе, а не в командной оболочке на одном компьютере (он прекрасно работал на другом компьютере).
Поэтому я попробовал использовать другой NodeMCU с CP2102, и он работал просто отлично. Поэтому я предполагаю, что в моем Linux должна быть какая-то проблема с драйвером ch341, я не знаю.
У меня была та же проблема. После ввода команды Майенко предложил:
stty -F /dev/ttyUSB0 -hupcl
Я все еще не мог посылать команды на Arduino nano. Как ни странно, когда я открываю Arduino IDE Serial Monitor и отправляю команду, она работает. Когда я закрываю его, я могу посылать команды в терминале на Arduino в течение некоторого времени. Затем он снова перестает работать :/
- Отключение Arduino при загрузке
- Подключение NodeMCU для Serial1
- NodeMCU второй HARDWARE последовательный TX в качестве порта отладки
- Как отправить символы в SoftwareSerial Arduino с помощью командной строки Linux без хвоста -f?
- Ни ttyACM0, ни ttyUSB0
- Отправка данных из Arduino Mega в nodeMCU с использованием последовательного порта (данные нескольких датчиков) и загрузка в firebase
- Отправка данных из одного узла NodeMCU в другой узел NodeMCU с использованием последовательной связи
- Скорость передачи устанавливается на 9600 автоматически, даже если указано другое значение.
Есть ли у вас что-то еще, подключенное через USB к компьютеру, где оно не работает? Может быть, NodeMCU-это ttyUSB1?, @Edgar Bonet
Это ответ на ваш вопрос? [Как подключить устройство Arduino к Linux?](https://arduinoprosto.ru/q/16776/how-to-connect-arduino-device-to-linux), @Juraj
Вы немного ждете между открытием порта и отправкой данных? Arduino может быть еще не готов к получению данных непосредственно после открытия порта (так как он сбрасывается), @chrisl
Попробуйте выполнить:
stty -F /dev/ttyUSB0 -hupcl
, @Majenko