Raspberry Pi:Библиотеки/WiringPi/Функции для работы с шиной I2C
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Функции для работы с шиной I2C[1]
Библиотека WiringPi содержит набор функций, упрощающих работу с интерфейсом I2C, встроенным в Raspberry Pi.
Для начала нужно воспользоваться утилитой gpio, чтобы с ее помощью загрузить в ядро драйверы для I2C:
gpio load i2c
Если вам нужно изменить скорость передачи данных (в бодах; по умолчанию стоит 100 Кбит/сек), то сделать это можно следующим образом:
gpio load i2c 1000
Это выставит скорость передачи данных на 1000 Кбит/сек, т.е. на передачу 1 млн бит в секунду.
Чтобы использовать в программе функции для I2C, в ее начало нужно вписать следующую строчку:
#include <wiringPiI2C.h>
Кроме того, как и всегда, при запуске и компиляции программы в конце нужно вписать
–lwiringPi
Для проверки I2C-устройств по-прежнему можно (более того, мы рекомендуем именно так и делать) пользоваться стандартными системными командами – например,
i2cdetect
Просто помните что на 1-ой версии Raspberry Pi это устройство номер 0, а на 2-ой – устройство номер 1. Вот так:
i2cdetect -y 0 # версия 1
i2cdetect -y 1 # версия 2
Помните, что для того, чтобы запустить команду i2cdetect с параметрами, которые будут корректны для вашей версии Raspberry Pi, достаточно воспользоваться утилитой gpio:
gpio i2cdetect
Итак, функции для работы с шиной I2C:
Для всех функций ниже: если возвращаемое значение будет отрицательным, это значит, что произошла ошибка – о ее причине проконсультируйтесь у переменной errno.
- wiringPiI2CRead()
- wiringPiI2CWrite()
- wiringPiI2CWriteReg8()
- wiringPiI2CWriteReg16()
- wiringPiI2CReadReg8()
- wiringPiI2CReadReg16()