Arduino:Справочник языка Arduino/Библиотеки/Wire/requestFrom()

Материал из Онлайн справочника
Версия от 12:44, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция Wire.requestFrom()[1]

Используется ведущим устройством, чтобы запрашивать байты у ведомого устройства. Получение этих байтов осуществляется при помощи функций available() и read().

Начиная с Arduino 1.0.1 функция requestFrom() может работать с булевыми аргументами, меняя свое поведение, чтобы обрести совместимость с теми или иными I2C-девайсами.

Если поставить true, то requestFrom(), осуществив запрос, отправит стоп-сообщение, высвобождающее I2C-шину.

Если поставить false, то requestFrom(), осуществив запрос, отправит еще одно сообщение. Таким образом, I2C-шина не освободится, и это помешает другому ведущему устройству сделать свой запрос между сообщениями. Благодаря этому ведущее устройство может отправлять по несколько запросов за сессию.

Значение по умолчанию — true.

Синтаксис

Wire.requestFrom(address, quantity)
Wire.requestFrom(address, quantity, stop)

Параметры

address  7-битный адрес девайса, у которого запрашиваются байты.
quantity  количество запрашиваемых байтов.
stop  булев аргумент. Если поставить true, после запроса будет отправлено стоп-сообщение, освобождающее шину. Если поставить false, после запроса будут постоянно отправляться сообщения, благодаря чему соединение будет оставаться в активном состоянии.

Что возвращает

Количество байтов, возвращенных от ведомого устройства.

См.также

  1. Wire.available()
  2. Wire.read()

Внешние ссылки