From 7fec5e629b50fbc54d170b258e9a6a5aadd1b9ed Mon Sep 17 00:00:00 2001 From: jgromes Date: Wed, 1 Apr 2020 14:01:02 +0200 Subject: [PATCH] [ESP8266] Added missing calls to yield --- src/modules/ESP8266/ESP8266.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/ESP8266/ESP8266.cpp b/src/modules/ESP8266/ESP8266.cpp index b221d0ff..1aa959a9 100644 --- a/src/modules/ESP8266/ESP8266.cpp +++ b/src/modules/ESP8266/ESP8266.cpp @@ -195,6 +195,7 @@ size_t ESP8266::receive(uint8_t* data, size_t len, uint32_t timeout) { // wait until the required number of bytes is received or until timeout while((millis() - start < timeout) && (i < len)) { + yield(); while(_mod->ModuleSerial->available() > 0) { uint8_t b = _mod->ModuleSerial->read(); RADIOLIB_DEBUG_PRINT(b); @@ -209,6 +210,7 @@ size_t ESP8266::getNumBytes(uint32_t timeout, size_t minBytes) { // wait for available data uint32_t start = millis(); while(_mod->ModuleSerial->available() < (int16_t)minBytes) { + yield(); if(millis() - start >= timeout) { return(0); } @@ -219,6 +221,7 @@ size_t ESP8266::getNumBytes(uint32_t timeout, size_t minBytes) { uint8_t i = 0; start = millis(); while(_mod->ModuleSerial->available() > 0) { + yield(); char c = _mod->ModuleSerial->read(); rawStr[i++] = c; if(c == ':') {