У цій відповіді перелічені 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
Або інший термінал програма емулятора буде зчитувати з цим USB COM - порту.
key=getKey();
свій GSM (використовуючи контакт 2 та 3 Arduino Uno), не отримує SMS. Допоможіть мені, будь ласка.