@@ -110,11 +110,14 @@ esp_err_t i2c_master_soft_bus_write_reg8(i2c_master_soft_bus_handle_t bus_handle
110110
111111 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for device address" );
112112
113+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
113114 if (mem_address != NULL_I2C_MEM_ADDR ) {
115+ #endif
114116 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , mem_address ), TAG , "Failed to write memory address" );
115117 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for device address" );
118+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
116119 }
117-
120+ #endif
118121 // Write data
119122 for (size_t i = 0 ; i < data_len ; i ++ ) {
120123 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , data [i ]), TAG , "Failed to write data byte" );
@@ -136,12 +139,16 @@ esp_err_t i2c_master_soft_bus_write_reg16(i2c_master_soft_bus_handle_t bus_handl
136139 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , address_byte ), TAG , "Failed to write device address" );
137140 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for device address" );
138141
142+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
139143 if (mem_address != NULL_I2C_MEM_16BIT_ADDR ) {
144+ #endif
140145 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , (uint8_t )((mem_address >> 8 ) & 0x00FF )), TAG , "Failed to write memory address" );
141146 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for mem address" );
142147 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , (uint8_t )(mem_address & 0x00FF )), TAG , "Failed to write memory address" );
143148 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for mem address" );
149+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
144150 }
151+ #endif
145152
146153 // Write data
147154 for (size_t i = 0 ; i < data_len ; i ++ ) {
@@ -159,7 +166,9 @@ esp_err_t i2c_master_soft_bus_read_reg8(i2c_master_soft_bus_handle_t bus_handle,
159166 ESP_RETURN_ON_FALSE (bus_handle , ESP_ERR_INVALID_ARG , TAG , "Invalid I2C bus handle" );
160167
161168 // Send memory address
169+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
162170 if (mem_address != NULL_I2C_MEM_ADDR ) {
171+ #endif
163172 // Generate START condition
164173 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_start (bus_handle ), TAG , "Failed to initiate start signal" );
165174
@@ -169,7 +178,9 @@ esp_err_t i2c_master_soft_bus_read_reg8(i2c_master_soft_bus_handle_t bus_handle,
169178 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for device address" );
170179 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , mem_address ), TAG , "Failed to write memory address" );
171180 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for mem address" );
181+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
172182 }
183+ #endif
173184
174185 // Generate RESTART condition
175186 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_start (bus_handle ), TAG , "Failed to initiate repeated start signal" );
@@ -198,7 +209,9 @@ esp_err_t i2c_master_soft_bus_read_reg16(i2c_master_soft_bus_handle_t bus_handle
198209 ESP_RETURN_ON_FALSE (bus_handle , ESP_ERR_INVALID_ARG , TAG , "Invalid I2C bus handle" );
199210
200211 // Send memory address
212+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
201213 if (mem_address != NULL_I2C_MEM_16BIT_ADDR ) {
214+ #endif
202215 // Generate START condition
203216 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_start (bus_handle ), TAG , "Failed to initiate start signal" );
204217
@@ -210,7 +223,9 @@ esp_err_t i2c_master_soft_bus_read_reg16(i2c_master_soft_bus_handle_t bus_handle
210223 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for mem address" );
211224 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_write_byte (bus_handle , (uint8_t )(mem_address & 0x00FF )), TAG , "Failed to write memory address" );
212225 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_wait_ack (bus_handle ), TAG , "No ACK for mem address" );
226+ #if !CONFIG_I2C_BUS_REMOVE_NULL_MEM_ADDR
213227 }
228+ #endif
214229
215230 // Generate RESTART condition
216231 ESP_RETURN_ON_ERROR (i2c_master_soft_bus_start (bus_handle ), TAG , "Failed to initiate repeated start signal" );
0 commit comments