Răsfoiți Sursa

Fix rtthread CAN driver issue.

Reset rx tx handler when closing CAN device, Or it will not work after
reopening.

Change-Id: I43482c21263a989322f8df2ac9349128f7cb630a
Noe Xu 6 ani în urmă
părinte
comite
52729bb62d
1 a modificat fișierele cu 2 adăugiri și 0 ștergeri
  1. 2 0
      components/drivers/can/can.c

+ 2 - 0
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);
     }