diff --git a/f4/usart/src/usart4.c b/f4/usart/src/usart4.c
index 93d59baf8aaef7f937019367ad31bc1dd2e0161e..5b325b3df1f8ac5ec8a684c66b175eee53a971e3 100644
--- a/f4/usart/src/usart4.c
+++ b/f4/usart/src/usart4.c
@@ -111,7 +111,7 @@ void UART_DMA_TX_IRQHandler(void)
       __HAL_DMA_DISABLE_IT(Uart4Handle.hdmatx, DMA_IT_TC);
       /* Clear the transfer complete flag */
       __HAL_DMA_CLEAR_FLAG(Uart4Handle.hdmatx, __HAL_DMA_GET_TC_FLAG_INDEX(Uart4Handle.hdmatx));
-      CLEAR_BIT(Uart4Handle.Instance->CR3, (UART_CR3_DMAT | UART_CR3_DMAR));
+      CLEAR_BIT(Uart4Handle.Instance->CR3, (USART_CR3_DMAT | USART_CR3_DMAR));
       HAL_DMA_Abort(Uart4Handle.hdmatx);
       // call the user function
       comm_do_dma_send(usart4_comm_dev);
@@ -149,7 +149,7 @@ void UART_DMA_RX_IRQHandler(void)
       __HAL_DMA_DISABLE_IT(Uart4Handle.hdmarx, DMA_IT_TC);
       /* Clear the transfer complete flag */
       __HAL_DMA_CLEAR_FLAG(Uart4Handle.hdmarx, __HAL_DMA_GET_TC_FLAG_INDEX(Uart4Handle.hdmarx));
-      CLEAR_BIT(Uart4Handle.Instance->CR3, (UART_CR3_DMAT | UART_CR3_DMAR));
+      CLEAR_BIT(Uart4Handle.Instance->CR3, (USART_CR3_DMAT | USART_CR3_DMAR));
       HAL_DMA_Abort(Uart4Handle.hdmarx);
       // call the user function
       comm_do_dma_receive(usart4_comm_dev);
@@ -325,7 +325,7 @@ unsigned char usart4_send_dma(unsigned char *data,unsigned short int length)
   __HAL_UART_CLEAR_FLAG(&Uart4Handle,UART_FLAG_TC);
   /* Enable the DMA transfer for transmit request by setting the DMAT bit
      in the UART CR3 register */
-  SET_BIT(Uart4Handle.Instance->CR3, UART_CR3_DMAT);
+  SET_BIT(Uart4Handle.Instance->CR3, USART_CR3_DMAT);
 
   return 0x00;
 }
@@ -333,14 +333,14 @@ unsigned char usart4_send_dma(unsigned char *data,unsigned short int length)
 unsigned char usart4_receive_dma(unsigned char *data,unsigned short int length)
 {
   HAL_DMA_Start_IT(Uart4Handle.hdmarx,(uint32_t)&Uart4Handle.Instance->DR,(uint32_t)data,length);
-  SET_BIT(Uart4Handle.Instance->CR3, UART_CR3_DMAR);
+  SET_BIT(Uart4Handle.Instance->CR3, USART_CR3_DMAR);
 
   return 0x00;
 }
 
 unsigned char usart4_cancel_receive_dma(void)
 {
-  CLEAR_BIT(Uart4Handle.Instance->CR3, (UART_CR3_DMAT | UART_CR3_DMAR));
+  CLEAR_BIT(Uart4Handle.Instance->CR3, (USART_CR3_DMAT | USART_CR3_DMAR));
   HAL_DMA_Abort(Uart4Handle.hdmarx);
 
   return 0x00;
diff --git a/l0/usart/include/usart1.h b/l0/usart/include/usart1.h
index 3c05080d2cce6dc7133d44f4cea53e10c247dd18..201db3432b71dd85518a15938a0946b2496102a7 100644
--- a/l0/usart/include/usart1.h
+++ b/l0/usart/include/usart1.h
@@ -9,6 +9,7 @@
 void usart1_init(TComm *comm_dev,UART_InitTypeDef *conf,UART_AdvFeatureInitTypeDef *adv_conf,TUSART_IRQ_Priorities *priorities);
 void usart1_config(TComm *comm_dev,UART_InitTypeDef *conf,UART_AdvFeatureInitTypeDef *adv_conf);
 void usart1_set_priorities(TComm *comm_dev,TUSART_IRQ_Priorities *priorities);
+void usart1_set_baudrate(TComm *comm_dev,unsigned int baudrate);
 /* IRQ functions */
 unsigned char usart1_send_irq(unsigned char first_byte);
 unsigned char usart1_enable_tx_irq(void);
diff --git a/l0/usart/src/usart1.c b/l0/usart/src/usart1.c
index d1e4d8f1891a099372ce9a07592faa00ea000d31..5da2ee03732267e39cffb77810cb5801b04332dc 100644
--- a/l0/usart/src/usart1.c
+++ b/l0/usart/src/usart1.c
@@ -281,6 +281,12 @@ void usart1_set_priorities(TComm *comm_dev,TUSART_IRQ_Priorities *priorities)
   }
 }
 
+void usart1_set_baudrate(TComm *comm_dev,unsigned int baudrate)
+{
+  UartHandle.Init.BaudRate = baudrate;
+  HAL_UART_Init(&UartHandle);
+}
+
 /* IRQ functions */
 unsigned char usart1_send_irq(unsigned char first_byte)
 {