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
prevent device block in SPI_MUTEX_LOCK() at least on ESP32
ESP32 uses a MUTEX to handle SPI transactions.
So calling beginTransaction twice in a row will block the device.
This happens in current code, if SRAM is used or a display (like 2,7" tricolor IL91874) which uses singleByteTxns = true
Both will call beginTransaction twice in a row and then the device will block for ever in
cores\esp32\esp32-hal-spi.h SPI_MUTEX_LOCK();
To prevent this, I made some changes in Adafruit_EPD.cpp
to track _isInTransaction properly, which was not used before.
See also adafruit/Adafruit-PN532#53 for a similar bug.
0 commit comments