Оглавление
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
- таймаут