☰ Оглавление

SoftwareSerial

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

Библиотека SoftwareSerial позволяет реализовать последовательный интерфейс на любых цифровых выводах Ардуино с помощью программных средств, дублирующих функциональность UART (отсюда и название "SoftwareSerial"). Библиотека позволяет программно создавать несколько последовательных портов, работающих на скорости до 115200 бод. Для устройств, работающих с инвертированным сигналом, в библиотеке предусмотрен соответствующий параметр, включающий инвертирование.

Начиная с версии 1.0, SoftwareSerial основывается на библиотеке NewSoftSerial автора Mikal Hart.

Ограничения

Среди известных ограничений библиотеки SoftwareSerial можно перечислить следующие:

  • При использовании нескольких последовательных портов, в каждый момент времени только один из них может получать данные.
  • На платах Arduino Mega и Mega2560 некоторые выводы не поддерживают прерывания, возникающие при изменении уровня сигнала. В силу этого, на данных платах в качестве вывода 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).
  • На Arduino Leonardo некоторые выводы не поддерживают прерывания, возникающие при изменении уровня сигнала. Поэтому, на этой плате в качестве вывода RX могут использоваться только следующие выводы: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Пример

×