Fix a bug where arduino would crash on incorrectly sized i2c payload

This commit is contained in:
Kenwood 2021-07-04 22:10:05 -04:00
parent f6bb087799
commit 6fbb53b6bd
1 changed files with 6 additions and 3 deletions

View File

@ -41,8 +41,7 @@ void loop() {
// This method runs when we receive a message
void receiveEvent(int n) {
Wire.read();
digitalWrite(LED_BUILTIN, HIGH);
Wire.read(); // Remove smbus trash
if (true) { // Dont do anything if this is not true
id = Wire.read(); // ID of the servo/device to access
val = Wire.read(); // Value to assign
@ -56,5 +55,9 @@ void receiveEvent(int n) {
break;
}
}
digitalWrite(LED_BUILTIN, LOW);
// Prevents a bug where if bytes are left in buffer, arduino crashes.
while (Wire.available()) {
Wire.read();
}
}