View Categories

Wire

Wire - отправка и чтение данных по I2C. Наследует класс Stream.

Система #

begin #

void begin()
void begin(uint8_t address)
Запустить шину. Если указать адрес address - работать как slave устройство, без адреса - как master устройство (для опроса других устройств).

end #

void end()
Завершить работу

setClock #

void setClock(uint32_t hz)
Установить частоту шины в Гц. Базовая 100000, быстрая 400000. Некоторые устройства поддерживают более низкую и более высокую частоту.

onReceive #

void onReceive(void (*)(int data))
Подключить функцию, которая будет вызываться при поступлении данных от master устройства

onRequest #

void onRequest(void (*)(void))
Подключить функцию, которая будет вызываться при запросе данных от master устройства

setWireTimeout #

void setWireTimeout(uint32_t timeout = 25000, bool reset_with_timeout = false)
Установить таймаут timeout отправки в master-режиме, микросекунд. reset_with_timeout - сбросить соединение при выходе таймаута. Автоматически сбросит фалг таймаута.

getWireTimeoutFlag #

bool getWireTimeoutFlag()
Прочитать флаг таймаута

clearWireTimeoutFlag #

void clearWireTimeoutFlag()
Сбросить флаг таймаута

Чтение #

read, peek, available #

Наследуется из Stream

requestFrom #

uint8_t requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop = true)
Запросить quantity байт с устройства по адресу address для дальнейшего чтения. sendStop:

  • true - отправить сигнал стоп и освободить линию
  • false - отправить сигнал на перезапуск и не отключаться

Вернёт количество отправленных устройством байт.

Отправка #

write #

size_t write(uint8_t)
size_t write(const uint8_t *buffer, size_t size)
Отправить данные

beginTransmission #

void beginTransmission(uint8_t address)
Начать передачу данных устройству с адресом address. Дальше нужно отправлять данные через write (пишутся в буфер).

endTransmission #

uint8_t endTransmission(uint8_t sendStop = true)
Передать данные из буфера устройству, с которым была начата передача в beginTransmission(). sendStop:

  • true - отправить сигнал стоп и освободить линию
  • false - отправить сигнал на перезапуск и не отключаться

Вернёт:

  • 0 - успешная отправка
  • 1 - данные не поместились в буфер
  • 2 - получен NACK при отправке адреса
  • 3 - получен NACK при отправке данных
  • 4 - другие ошибки
  • 5 - таймаут
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх