From 72974c41a7cab637ef6bce931ad26db5bf44fe0e Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Sat, 13 Dec 2025 12:40:00 +0100 Subject: [PATCH] Configure multiple slave management --- firmware/esp32/main/i2c.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/firmware/esp32/main/i2c.cpp b/firmware/esp32/main/i2c.cpp index 4f3f932..0f8ebc3 100644 --- a/firmware/esp32/main/i2c.cpp +++ b/firmware/esp32/main/i2c.cpp @@ -20,18 +20,19 @@ static const char* TAG = "I2C"; TaskHandle_t i2c_task_handle = NULL; i2c_master_bus_handle_t bus_handle; -i2c_master_dev_handle_t slave_handles[SLAVES_NUMBER]; +static i2c_master_dev_handle_t slave_handles[SLAVES_NUMBER]; uint8_t slave_count = 0; +uint8_t slave_addrs[SLAVES_NUMBER]; -static void register_slave(int addr) { - i2c_device_config_t slave_dev_cfg = { - .dev_addr_length = I2C_ADDR_BIT_LEN_7, - .device_address = addr, - .scl_speed_hz = 100000, // 100kHz or 400kHz - }; +uint8_t data_rd[DATA_LENGTH]; +static void register_slave(uint8_t addr) { + i2c_device_config_t slave_dev_cfg = {}; + slave_dev_cfg.dev_addr_length = I2C_ADDR_BIT_LEN_7; + slave_dev_cfg.device_address = addr; + slave_dev_cfg.scl_speed_hz = 100000; ESP_ERROR_CHECK(i2c_master_bus_add_device(bus_handle, &slave_dev_cfg, &slave_handles[slave_count])); - slave_count++; + slave_addrs[slave_count++] = addr; } static void i2c_init(void) {