adafruit / Adafruit_EPD

e-paper display driver for Arduino
140 stars 56 forks source link

fix device blocking on ESP32 if hardware SPI is used #36

Closed Hutch67 closed 3 years ago

Hutch67 commented 3 years ago

fixed blocking of SPI at least on ESP32

35

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();

Hutch67 commented 3 years ago

to many changes on master, will check and file a new one if necessary