diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index 3d60dbaa55c75ae84762b0294c1f8d0c9ef90c6c..0fa01e3a07ead475c4d054c3793582a566bd7764 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;