diff --git a/components/esp_driver_rmt/src/rmt_encoder_simple.c b/components/esp_driver_rmt/src/rmt_encoder_simple.c index 5f3284b24b..91448dd11f 100644 --- a/components/esp_driver_rmt/src/rmt_encoder_simple.c +++ b/components/esp_driver_rmt/src/rmt_encoder_simple.c @@ -150,7 +150,8 @@ static size_t rmt_encode_simple(rmt_encoder_t *encoder, rmt_channel_handle_t cha // reset internal index if encoding session has finished simple_encoder->last_symbol_index = 0; state |= RMT_ENCODING_COMPLETE; - } else { + } + if (symbol_off >= tx_chan->mem_end) { // no more free memory, the caller should yield state |= RMT_ENCODING_MEM_FULL; }