From 52729bb62d126ace0c564268d47ae4232f69e684 Mon Sep 17 00:00:00 2001 From: Noe Xu Date: Sun, 23 Dec 2018 00:50:47 -0800 Subject: [PATCH] Fix rtthread CAN driver issue. Reset rx tx handler when closing CAN device, Or it will not work after reopening. Change-Id: I43482c21263a989322f8df2ac9349128f7cb630a --- components/drivers/can/can.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index e20fcddcff..81fdf25a1e 100644 --- a/components/drivers/can/can.c +++ b/components/drivers/can/can.c @@ -405,6 +405,7 @@ static rt_err_t rt_can_close(struct rt_device *dev) rt_free(rx_fifo); dev->open_flag &= ~RT_DEVICE_FLAG_INT_RX; + can->can_rx = RT_NULL; /* configure low level device */ can->ops->control(can, RT_DEVICE_CTRL_CLR_INT, (void *)RT_DEVICE_FLAG_INT_RX); } @@ -418,6 +419,7 @@ static rt_err_t rt_can_close(struct rt_device *dev) rt_free(tx_fifo); dev->open_flag &= ~RT_DEVICE_FLAG_INT_TX; + can->can_tx = RT_NULL; /* configure low level device */ can->ops->control(can, RT_DEVICE_CTRL_CLR_INT, (void *)RT_DEVICE_FLAG_INT_TX); }