I2C
Шина I2C позволяет микроконтроллеру взаимодействовать с различными устройствами, такими как гироскопы, акселерометры, датчики давления, EEPROM-память, дисплеи.
Объекты из класса уже созданы и для начала работы с ними, достаточно выполнить метод I2Cn.setup
, подставив вместо n
— номер шины. К шине I2C1
, если она выведена на отдельные контакты, вы можете обращаться как к PrimaryI2C
.
Типовой сценарий использования таков:
// Настройка интерфейса // (необязательна при использовании выделенных I2C) I2C2.setup({sda: P0, scl: P1, bitrate: 400000}); // Передача пакета данных I2C2.writeTo(0x28, [0xFF, 0x30]); // Приём данных var myTwoBytes = I2C2.readFrom(0x28, 2);
Реализация поддерживает только I²C в режиме ведущего устройства.
Методы
Статический метод возвращает экземпляр интерфейса I2C
, который может работать с пином pin
(например, I2C1
).
Возвращает undefined
, если на пине не поддерживается I²C.
Запрашивает quantity
байт от ведомого устройства с адресом address
. Посылает STOP-сигнал на шину I²C по завершению. Возвращает полученные данные в виде буфера Uint8Array
.
Адрес устройства должен быть 7-битным числом или объектом вида {address: 12, stop: false}
. В последнем случае в конце запроса не будет послан сигнал STOP.
Настраивает I²C-интерфейс на работу с заданными пинами и на заданной скорости.
В качестве options
ожидается объект вида {sda: pin, scl: pin, bitrate: 100000}
, где sda
и scl
— пины с соответствующими функциями, bitrate
— скорость передачи.
Если sda
или scl
не заданы, в качестве значений используются пины по умолчанию для данного I²C-интерфейса.
Если не задан bitrate
, используется значение по умолчанию 50000 (50 кГц). Обратите внимание: 400 кГц — максимум для большинства периферии.
Если options
не передан вовсе, используются умолчания для всех значений.
Вызов I2C.setup
необходим для правильной настройки режима работы пинов интерфейса. Однако для экземпляра PrimaryI2C
вызов не обязателен: он настраивается автоматически при старте микроконтроллера.
Передаёт данные ведомому I²C-устройству с адресом address
. Посылает STOP-сигнал на шину после завершения.
В качестве data, …
ожидается один или более элемент для передачи. Элементами могут быть целые числа, строки, массивы.
Адрес устройства должен быть 7-битным числом или объектом вида {address: 12, stop: false}
. В последнем случае в конце запроса не будет послан сигнал STOP.