diff --git a/src/usart.c b/src/usart.c --- a/src/usart.c +++ b/src/usart.c @@ -7,6 +7,7 @@ UART_HandleTypeDef huart1; DMA_HandleTypeDef hdma_usart1_rx; DMA_HandleTypeDef hdma_usart1_tx; +uint8_t uart_initted = 0; void uart_init(void) { @@ -73,6 +74,18 @@ void uart_init(void) //HAL_NVIC_EnableIRQ(USART1_IRQn); HAL_NVIC_DisableIRQ(USART1_IRQn); + uart_initted = 1; +} + +void uart_deinit(void) +{ + if(uart_initted == 1) + { + HAL_DMA_DeInit(&hdma_usart1_rx); + HAL_DMA_DeInit(&hdma_usart1_tx); + HAL_UART_DeInit(&huart1); + uart_initted = 0; + } } UART_HandleTypeDef* uart_gethandle(void)