diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c
index 3c800961d1affb49bb23154e877ea4e4efb0dfca..8c613db95d5875a752e92ecbb7e7f3946eec1b79 100644
--- a/drivers/serial/serial_stm32.c
+++ b/drivers/serial/serial_stm32.c
@@ -81,6 +81,10 @@ static int stm32_serial_getc(void)
 static void stm32_serial_putc(const char c)
 {
 	struct stm32_serial *usart = (struct stm32_serial *)USART_BASE;
+
+	if (c == '\n')
+		stm32_serial_putc('\r');
+
 	while ((readl(&usart->sr) & USART_SR_FLAG_TXE) == 0)
 		;
 	writel(c, &usart->dr);