В этом ответе перечислены 4 основных варианта:
HardwareSerial
, всегда лучший. Просто используйте предопределенную Serial
переменную. На некоторых Arduinos есть дополнительные HardwareSerial порты, названные Serial1
, Serial2
и т.д. Nano имеет только Serial
.
AltSoftSerial
Лучшие из серийных программных библиотек. Разрешен только один экземпляр, и он должен использоваться на одном из выводов ввода ввода (выводы 8 и 9 для Nano).
Мой NeoSWSerial
следующий лучший. Он работает на любых двух выводах, но только со скоростью 9600, 19200 и 38400 бод.
SoftwareSerial
это худший выбор. Он работает на любых двух выводах, но очень неэффективен. Он отключает прерывания на все время отправки или получения символа и не может делать оба одновременно (в отличие от всех других последовательных вариантов). Это может помешать другим частям вашего эскиза, другим устройствам или библиотекам.
Если вы могли бы использовать более низкую скорость передачи данных, вы можете сохранить ваши отладочные отпечатки на Serial
и использовать либо AltSoftSerial
или NeoSWSerial
для вашего устройства.
Но если вам нужно использовать 115200, единственный надежный выбор Serial
. Хотя AltSoftSerial
и SoftwareSerial
разрешить эту скорость передачи данных, они могут не отправлять / получать данные правильно.
В этом случае я бы предложил использовать Serial
для устройства 115200. Если вы не используете интернет-провайдера, вам придется отключить устройство, чтобы загрузить новый эскиз через USB.
Затем используйте AltSoftSerial
или NeoSWSerial
для ваших отладочных операторов. Вам понадобится адаптер TTL Serial-to-USB (также известный как FTDI) на выбранных контактах для подключения к ПК. Эта Serial Monitor
или другая программа-эмулятор терминала будет считывать данные с этого COM-порта USB.
key=getKey();
свой GSM (используя 2 и 3 контакт Arduino Uno), я не получаю SMS. Помоги мне, пожалуйста.