Демонстрационная прошивка отладочного комплекта МТС NB-IoT
|
Файлы | |
файл | i2c_api.h |
Макросы | |
#define | I2C_SAFETY_TIMEOUT 2000000UL |
#define | NULL ((void *)0) |
Перечисления | |
enum | i2c_error_t { I2C_ERROR_NONE, I2C_ERROR_START_FAIL, I2C_ERROR_ADDR_FAIL, I2C_ERROR_READ_FAIL, I2C_ERROR_WRITE_FAIL } |
Функции | |
void | init_i2c (I2C_TypeDef *i2c_inst, uint32_t sys_clk) |
Выполняет настройку модуля I2C для работы на стандартной частоте SDA, равной 100 кГц. Подробнее... | |
i2c_error_t | i2c_read_with_pointer (I2C_TypeDef *i2c_inst, uint8_t i2c_addr, uint8_t pointer_byte, uint8_t read_length, uint8_t *read_buffer) |
Функция выполняет чтение регистра устройства I2C по правилам, общим для многих I2C-устройств. Подробнее... | |
i2c_error_t | i2c_write_with_pointer (I2C_TypeDef *i2c_inst, uint8_t i2c_addr, uint8_t pointer_byte, uint16_t write_length, uint8_t *write_buffer) |
Функция выполняет запись регистра устройства I2C по правилам, общим для многих I2C-устройств. Подробнее... | |
#define I2C_SAFETY_TIMEOUT 2000000UL |
i2c_error_t i2c_read_with_pointer | ( | I2C_TypeDef * | i2c_inst, |
uint8_t | i2c_addr, | ||
uint8_t | pointer_byte, | ||
uint8_t | read_length, | ||
uint8_t * | read_buffer | ||
) |
Функция выполняет чтение регистра устройства I2C по правилам, общим для многих I2C-устройств.
Многие I2C-устройства (в частности, термодатчик TMP75 и акселерометр LIS3DH) предоставляют доступ к своим внутренним регистрам следующим способом: после генерации состояния START ведущий адресует устройство в режиме записи согласно протоколу I2C и передает байт-индекс регистра, который требуется прочитать. После этого ведущий генерирует состояние повторного старта, адресует устройство в режиме чтения и далее выполняет чтение ранее адресованного регистра. После чтения доступ завершается состоянием STOP. Функция реализует описанный алгоритм доступа.
[in] | i2c_inst | указатель на блок I2C |
[in] | i2c_addr | адрес устройства на шине I2C (семь бит, без бита чтение/запись) |
[in] | pointer_byte | индекс регистра устройства, из которого будет выполняться чтение |
[in] | read_length | количество байт, которое требуется прочесть |
[out] | read_buffer | указатель на массив, в который будет выполняться запись прочитанных данных |
i2c_error_t i2c_write_with_pointer | ( | I2C_TypeDef * | i2c_inst, |
uint8_t | i2c_addr, | ||
uint8_t | pointer_byte, | ||
uint16_t | write_length, | ||
uint8_t * | write_buffer | ||
) |
Функция выполняет запись регистра устройства I2C по правилам, общим для многих I2C-устройств.
Многие I2C-устройства (в частности, термодатчик TMP75 и акселерометр LIS3DH) предоставляют возможность записи в свои регистры следующим способом: после генерации состояния START ведущий адресует устройство в режиме записи согласно протоколу I2C, после чего передает байт-индекс регистра, в который требуется выполнить запись. После этого ведущий передает данные и завершает доступ состоянием STOP. Функция реализует описанный алгоритм доступа.
[in] | i2c_inst | указатель на блок I2C |
[in] | i2c_addr | адрес устройства на шине I2C (семь бит, без бита чтение/запись) |
[in] | pointer_byte | байт-индекс регистра, в который будет выполняться запись |
[in] | write_length | количество байт, которые требуется записать |
[in] | write_buffer | данные, которые требуется записать |
void init_i2c | ( | I2C_TypeDef * | i2c_inst, |
uint32_t | sys_clk | ||
) |
Выполняет настройку модуля I2C для работы на стандартной частоте SDA, равной 100 кГц.
[in] | i2c_inst | Указатель на модуль I2C. |
[in] | sys_clk | Значение тактовой частоты модуля (например, для I2C1 - тактирование шины APB1) в Герцах (например, 16 МГц = 16000000 Гц). |