Аппаратное обеспечение Arduino имеет встроенную поддержку последовательной шины на контактах 0 и 1 (которая также подключается к компьютеру через USB-соединение). Встроенная поддержка последовательного интерфейса осуществляется через аппаратное обеспечение (встроенное в чип), которое называется UART . Это оборудование позволяет микросхеме Atmega работать с последовательной шиной даже во время работы над другими задачами, если в 64-байтовом последовательном буфере есть место.

Библиотека SoftwareSerial была разработана для обеспечения последовательной связи на других цифровых выводах Arduino с использованием программного обеспечения для репликации функций (отсюда и название « SoftwareSerial »). Можно иметь несколько последовательных программных портов со скоростью до 115200 бит/с. Параметр включает инвертированную сигнализацию для устройств, которым требуется этот протокол.

Версия SoftwareSerial, включенная в 1.0 и более поздние, основана на библиотеке NewSoftSerial, разработанной Mikal Hart.

Ограничения

Библиотека имеет следующие известные ограничения:

  • При использовании нескольких программно организованных последовательных портов только один может получать данные одновременно.
  • Не все контакты на Mega и Mega 2560 поддерживают прерывания, поэтому для RX можно использовать только следующие: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 ( 63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
  • Не все контакты на Leonardo и Micro поддерживают прерывания, поэтому для RX можно использовать только следующее: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
  • На Arduino или Genuino 101 максимальная скорость приема составляет 57600 бит/с
  • На Arduino или Genuino 101 RX не работает на контакте 13

Если вашему проекту требуются одновременные потоки данных, смотри Библиотеку Paul Stoffregen AltSoftSerial . AltSoftSerial преодолевает ряд других проблем с ядром SoftwareSerial, но имеет свои ограничения. Для получения дополнительной информации обратитесь к сайту AltSoftSerial.

Примеры

  • Software Serial Example : используйте эту библиотеку, когда одного последовательного порта недостаточно!
  • Two Port Receive : работа с несколькими последовательными портами с помощью программного обеспечения.