You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is not an issue, this is just informative.
There is a difference between the Arduino Wire library (for the Arduino Uno) and the SoftwareWire library when writing data to a Target that does not acknowledge to its I2C address (because it is busy with other things).
Wire.beginTransmission(0x08);
Wire.write( 0xAA);
Wire.endTransmission( false); // parameter "false" for no STOP
When the Target does not exist or does not acknowledge to its I2C address, then the Arduino Wire library ignores the parameter and sends a STOP. The SoftwareWire library checks the parameter and does not send a STOP.
The idea is that the Controller can claim the I2C bus until the Target is ready.
On the Arduino forum, the question was if the Controller could not send a STOP condition when the Target is not ready, but send a STOP after the data was successful delivered to the Target. That is not possible with either library.
I don't know who is correct. Changing the behavior could violate the I2C standard.
The text was updated successfully, but these errors were encountered:
This is not an issue, this is just informative.
There is a difference between the Arduino Wire library (for the Arduino Uno) and the SoftwareWire library when writing data to a Target that does not acknowledge to its I2C address (because it is busy with other things).
The difference came up because of this topic on the Arduino forum: https://forum.arduino.cc/t/wire-library-repeated-start/952211/
Simplified code:
When the Target does not exist or does not acknowledge to its I2C address, then the Arduino Wire library ignores the parameter and sends a STOP. The SoftwareWire library checks the parameter and does not send a STOP.
The idea is that the Controller can claim the I2C bus until the Target is ready.
On the Arduino forum, the question was if the Controller could not send a STOP condition when the Target is not ready, but send a STOP after the data was successful delivered to the Target. That is not possible with either library.
I don't know who is correct. Changing the behavior could violate the I2C standard.
The text was updated successfully, but these errors were encountered: