Only call Wire.onReceive if data is available (#423)
The Pico HW seems to generate an interrupt on the end of every I2C write cycle, even if the slave address wasn't actually targeted. This would cause the onReceive method to be called with a 0-len parameter for every write on the I2C bus. Now, only call onReceive if there is 1 or more bytes of data available.
This commit is contained in:
parent
d5ddf4cd7f
commit
25b9ca821e
1 changed files with 1 additions and 1 deletions
|
|
@ -146,7 +146,7 @@ void TwoWire::onIRQ() {
|
|||
_i2c->hw->clr_start_det;
|
||||
}
|
||||
if (_i2c->hw->intr_stat & (1 << 9)) {
|
||||
if (_onReceiveCallback) {
|
||||
if (_onReceiveCallback && _buffLen) {
|
||||
_onReceiveCallback(_buffLen);
|
||||
}
|
||||
_buffLen = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue