diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index 3d60dbaa55c75ae84762b0294c1f8d0c9ef90c6c..9f4612355b3a4a7165a667b4ab02e53c597dd2fb 100644 --- a/components/drivers/can/can.c +++ b/components/drivers/can/can.c @@ -422,6 +422,7 @@ static rt_err_t rt_can_close(struct rt_device *dev) tx_fifo = (struct rt_can_tx_fifo *)can->can_tx; RT_ASSERT(tx_fifo != RT_NULL); + rt_sem_detach(&(tx_fifo->sem)); rt_free(tx_fifo); dev->open_flag &= ~RT_DEVICE_FLAG_INT_TX; can->can_tx = RT_NULL;