diff --git a/components/hal/twai_hal_iram.c b/components/hal/twai_hal_iram.c index 5fd54fe9a9..8347dc819f 100644 --- a/components/hal/twai_hal_iram.c +++ b/components/hal/twai_hal_iram.c @@ -190,6 +190,9 @@ void twai_hal_set_tx_buffer_and_transmit(twai_hal_context_t *hal_ctx, twai_hal_f } TWAI_HAL_SET_BITS(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_TX_BUFF_OCCUPIED); #if defined(CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID) || defined(CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT) + if (&hal_ctx->tx_frame_save == tx_frame) { + return; + } //Save transmitted frame in case we need to retry memcpy(&hal_ctx->tx_frame_save, tx_frame, sizeof(twai_hal_frame_t)); #endif //defined(CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID) || defined(CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT)