RCM — ESP32 Room Controller
WT32-ETH01 firmware
Loading...
Searching...
No Matches
i2c_bus.h File Reference

Общая I2C-шина master (I2C_NUM_0) для всех периферийных устройств. More...

#include <stdint.h>
#include "driver/i2c_master.h"
#include "esp_err.h"

Go to the source code of this file.

Macros

#define I2C_BUS_PORT   I2C_NUM_0
 
#define I2C_BUS_SCL_GPIO   14
 
#define I2C_BUS_SDA_GPIO   15
 
#define I2C_BUS_FREQ_HZ   100000
 
#define I2C_BUS_TIMEOUT_MS   1000
 

Functions

esp_err_t i2c_bus_init (void)
 Создаёт master-шину I2C (идемпотентно).
 
i2c_master_bus_handle_t i2c_bus_handle (void)
 Вернуть handle общей шины (NULL, если i2c_bus_init ещё не вызывали).
 
esp_err_t i2c_bus_add_device (uint8_t addr7, i2c_master_dev_handle_t *dev)
 Добавить устройство с 7-битным адресом на общую шину.
 

Detailed Description

Общая I2C-шина master (I2C_NUM_0) для всех периферийных устройств.

SCL=GPIO14, SDA=GPIO15, 100 кГц. Драйверы (DS3231, LCM, …) добавляют свои устройства через i2c_bus_add_device().

Definition in file i2c_bus.h.

Macro Definition Documentation

◆ I2C_BUS_FREQ_HZ

#define I2C_BUS_FREQ_HZ   100000

Definition at line 19 of file i2c_bus.h.

Referenced by i2c_bus_add_device(), and i2c_bus_init().

◆ I2C_BUS_PORT

#define I2C_BUS_PORT   I2C_NUM_0

Definition at line 16 of file i2c_bus.h.

Referenced by i2c_bus_init().

◆ I2C_BUS_SCL_GPIO

#define I2C_BUS_SCL_GPIO   14

Definition at line 17 of file i2c_bus.h.

Referenced by i2c_bus_init().

◆ I2C_BUS_SDA_GPIO

#define I2C_BUS_SDA_GPIO   15

Definition at line 18 of file i2c_bus.h.

Referenced by i2c_bus_init().

◆ I2C_BUS_TIMEOUT_MS

#define I2C_BUS_TIMEOUT_MS   1000

Definition at line 20 of file i2c_bus.h.

Referenced by ds3231_read_regs(), ds3231_write_regs(), and i2c_cmd_send().

Function Documentation

◆ i2c_bus_add_device()

esp_err_t i2c_bus_add_device ( uint8_t addr7,
i2c_master_dev_handle_t * dev )

Добавить устройство с 7-битным адресом на общую шину.

Parameters
addr77-битный адрес slave.
[out]devHandle устройства.

Definition at line 43 of file i2c_bus.c.

References I2C_BUS_FREQ_HZ, s_bus, s_initialized, and TAG.

Referenced by ds3231_init(), and i2c_cmd_device_init().

◆ i2c_bus_handle()

i2c_master_bus_handle_t i2c_bus_handle ( void )

Вернуть handle общей шины (NULL, если i2c_bus_init ещё не вызывали).

Definition at line 38 of file i2c_bus.c.

References s_bus.

◆ i2c_bus_init()

esp_err_t i2c_bus_init ( void )

Создаёт master-шину I2C (идемпотентно).

Вызывать один раз до инициализации устройств на шине.

Definition at line 16 of file i2c_bus.c.

References I2C_BUS_FREQ_HZ, I2C_BUS_PORT, I2C_BUS_SCL_GPIO, I2C_BUS_SDA_GPIO, s_bus, s_initialized, and TAG.

Referenced by app_main(), ds3231_init(), and i2c_cmd_device_init().