diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index e2f1670b40d..29b90ac488e 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -2315,11 +2315,9 @@ static bool up_rxflowcontrol(struct uart_dev_s *dev, unsigned int nbuffered, bool upper) { struct up_dev_s *priv = (struct up_dev_s *)dev->priv; -#if !(defined(CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS) && defined(CONFIG_STM32_FLOWCONTROL_BROKEN)) - uint16_t ie; -#endif -#if defined(CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS) && defined(CONFIG_STM32_FLOWCONTROL_BROKEN) +#if defined(CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS) && \ + defined(CONFIG_STM32_FLOWCONTROL_BROKEN) if (priv->iflow && (priv->rts_gpio != 0)) { /* Assert/de-assert nRTS set it high resume/stop sending */ @@ -2363,9 +2361,7 @@ static bool up_rxflowcontrol(struct uart_dev_s *dev, * enable Rx interrupts. */ - ie = priv->ie; - ie &= ~USART_CR1_RXNEIE; - up_restoreusartint(priv, ie); + uart_disablerxint(dev); return true; } @@ -2378,7 +2374,7 @@ static bool up_rxflowcontrol(struct uart_dev_s *dev, * received. */ - up_rxint(dev, true); + uart_enablerxint(dev); } } #endif @@ -2477,8 +2473,11 @@ static void up_send(struct uart_dev_s *dev, int ch) struct up_dev_s *priv = (struct up_dev_s *)dev->priv; #ifdef HAVE_RS485 if (priv->rs485_dir_gpio != 0) - stm32_gpiowrite(priv->rs485_dir_gpio, priv->rs485_dir_polarity); + { + stm32_gpiowrite(priv->rs485_dir_gpio, priv->rs485_dir_polarity); + } #endif + up_serialout(priv, STM32_USART_TDR_OFFSET, (uint32_t)ch); }