File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -915,6 +915,12 @@ int ECCX08Class::receiveResponse(void* response, size_t length)
915
915
916
916
// make sure length matches
917
917
if (responseBuffer[0 ] != responseSize) {
918
+ // Clear the buffer
919
+ for (size_t i = 1 ; _wire->available (); i++) {
920
+ (void ) _wire->read ();
921
+ }
922
+ delay (1 );
923
+ idle ();
918
924
return 0 ;
919
925
}
920
926
@@ -925,9 +931,11 @@ int ECCX08Class::receiveResponse(void* response, size_t length)
925
931
// verify CRC
926
932
uint16_t responseCrc = responseBuffer[length + 1 ] | (responseBuffer[length + 2 ] << 8 );
927
933
if (responseCrc != crc16 (responseBuffer, responseSize - 2 )) {
934
+ delay (1 );
935
+ idle ();
928
936
return 0 ;
929
937
}
930
-
938
+
931
939
memcpy (response, &responseBuffer[1 ], length);
932
940
933
941
return 1 ;
You can’t perform that action at this time.
0 commit comments