summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_usart_v2.h2
-rw-r--r--components/drivers/serial/serial_v2.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart_v2.h b/bsp/stm32/libraries/HAL_Drivers/drv_usart_v2.h
index 3350b90864..9cab81bbff 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_usart_v2.h
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart_v2.h
@@ -28,7 +28,7 @@ int rt_hw_usart_init(void);
#else
#define UART_SET_TDR(__HANDLE__, __DATA__) ((__HANDLE__)->Instance->DR = (__DATA__))
-#define UART_GET_RDR(__HANDLE__) (return (__HANDLE__)->Instance->DR & 0xFF))
+#define UART_GET_RDR(__HANDLE__) ((__HANDLE__)->Instance->DR & 0xFF)
#endif
diff --git a/components/drivers/serial/serial_v2.c b/components/drivers/serial/serial_v2.c
index 8670a99aa8..d6ae508cab 100644
--- a/components/drivers/serial/serial_v2.c
+++ b/components/drivers/serial/serial_v2.c
@@ -939,6 +939,10 @@ static rt_err_t rt_serial_close(struct rt_device *dev)
rt_serial_tx_disable(dev, dev->open_flag &
(RT_SERIAL_TX_BLOCKING | RT_SERIAL_TX_NON_BLOCKING));
+ /* Clear the callback function */
+ serial->parent.rx_indicate = RT_NULL;
+ serial->parent.tx_complete = RT_NULL;
+
/* Call the control() API to close the serial device */
serial->ops->control(serial, RT_DEVICE_CTRL_CLOSE, RT_NULL);
dev->flag &= ~RT_DEVICE_FLAG_ACTIVATED;