Skip to content

Commit fafc200

Browse files
fix: fix addr8v8 read err in sccb_ng (espressif#828)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
1 parent e13bed2 commit fafc200

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

driver/sccb-ng.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,17 +228,22 @@ uint8_t SCCB_Read(uint8_t slv_addr, uint8_t reg)
228228
i2c_master_dev_handle_t dev_handle = *(get_handle_from_address(slv_addr));
229229

230230
uint8_t tx_buffer[1];
231-
uint8_t rx_buffer[1];
231+
uint8_t rx_buffer[1] = {0};
232232

233233
tx_buffer[0] = reg;
234234

235-
esp_err_t ret = i2c_master_transmit_receive(dev_handle, tx_buffer, 1, rx_buffer, 1, TIMEOUT_MS);
235+
esp_err_t ret = i2c_master_transmit(dev_handle, tx_buffer, 1, TIMEOUT_MS);
236236

237-
if (ret != ESP_OK)
238-
{
239-
ESP_LOGE(TAG, "SCCB_Read Failed addr:0x%02x, reg:0x%02x, data:0x%02x, ret:%d", slv_addr, reg, rx_buffer[0], ret);
237+
if (ret != ESP_OK) {
238+
ESP_LOGE(TAG, "SCCB_Read addr phase failed addr:0x%02x, reg:0x%02x, ret:%d", slv_addr, reg, ret);
239+
return 0;
240240
}
241241

242+
ret = i2c_master_receive(dev_handle, rx_buffer, 1, TIMEOUT_MS);
243+
if (ret != ESP_OK) {
244+
ESP_LOGE(TAG, "SCCB_Read Failed addr:0x%02x, reg:0x%02x, ret:%d", slv_addr, reg, ret);
245+
}
246+
ESP_LOGW(TAG, "read OK");
242247
return rx_buffer[0];
243248
}
244249

0 commit comments

Comments
 (0)