Skip to content

Commit 169966e

Browse files
committed
Fix onRequest being called for every slave address
Fixes: #5907
1 parent 384dbc2 commit 169966e

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

Diff for: cores/esp32/esp32-hal-i2c-slave.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -719,10 +719,12 @@ static void i2c_slave_isr_handler(void* arg)
719719
}
720720
if(slave_rw){ // READ
721721
#if CONFIG_IDF_TARGET_ESP32
722-
//SEND TX Event
723-
i2c_slave_queue_event_t event;
724-
event.event = I2C_SLAVE_EVT_TX;
725-
pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event);
722+
if(i2c->dev->status_reg.scl_main_state_last == 6){
723+
//SEND TX Event
724+
i2c_slave_queue_event_t event;
725+
event.event = I2C_SLAVE_EVT_TX;
726+
pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event);
727+
}
726728
#else
727729
//reset TX data
728730
i2c_ll_txfifo_rst(i2c->dev);

0 commit comments

Comments
 (0)