Raspberry Pi:Библиотеки/WiringPi/Функции для работы с шиной I2C: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 11: | Строка 11: | ||
Для начала нужно воспользоваться утилитой '''gpio''', чтобы с ее помощью загрузить в ядро драйверы для '''I2C''': | Для начала нужно воспользоваться утилитой '''gpio''', чтобы с ее помощью загрузить в ядро драйверы для '''I2C''': | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio load i2c | gpio load i2c | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 17: | Строка 17: | ||
Если вам нужно изменить скорость передачи данных (в бодах; по умолчанию стоит '''100 Кбит/сек'''), то сделать это можно следующим образом: | Если вам нужно изменить скорость передачи данных (в бодах; по умолчанию стоит '''100 Кбит/сек'''), то сделать это можно следующим образом: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio load i2c 1000 | gpio load i2c 1000 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 25: | Строка 25: | ||
Чтобы использовать в программе функции для '''I2C''', в ее начало нужно вписать следующую строчку: | Чтобы использовать в программе функции для '''I2C''', в ее начало нужно вписать следующую строчку: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
#include <wiringPiI2C.h> | #include <wiringPiI2C.h> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 31: | Строка 31: | ||
Кроме того, как и всегда, при запуске и компиляции программы в конце нужно вписать | Кроме того, как и всегда, при запуске и компиляции программы в конце нужно вписать | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
–lwiringPi | –lwiringPi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 37: | Строка 37: | ||
Для проверки '''I2C'''-устройств по-прежнему можно (более того, мы рекомендуем именно так и делать) пользоваться стандартными системными командами – например, | Для проверки '''I2C'''-устройств по-прежнему можно (более того, мы рекомендуем именно так и делать) пользоваться стандартными системными командами – например, | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
i2cdetect | i2cdetect | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 43: | Строка 43: | ||
Просто помните что на '''1-ой''' версии '''Raspberry Pi''' это устройство номер '''0''', а на '''2-ой''' – устройство номер '''1'''. Вот так: | Просто помните что на '''1-ой''' версии '''Raspberry Pi''' это устройство номер '''0''', а на '''2-ой''' – устройство номер '''1'''. Вот так: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
i2cdetect -y 0 # версия 1 | i2cdetect -y 0 # версия 1 | ||
i2cdetect -y 1 # версия 2 | i2cdetect -y 1 # версия 2 | ||
Строка 50: | Строка 50: | ||
Помните, что для того, чтобы запустить команду '''i2cdetect''' с параметрами, которые будут корректны для вашей версии '''Raspberry Pi''', достаточно воспользоваться утилитой '''gpio''': | Помните, что для того, чтобы запустить команду '''i2cdetect''' с параметрами, которые будут корректны для вашей версии '''Raspberry Pi''', достаточно воспользоваться утилитой '''gpio''': | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio i2cdetect | gpio i2cdetect | ||
</syntaxhighlight> | </syntaxhighlight> |
Версия от 18:13, 14 мая 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы 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()