mirror of https://github.com/ARMmbed/mbed-os.git
[STM32L1XX] Reset UART on init
parent
3243b38f5b
commit
6ebb2e6c6c
|
|
@ -66,7 +66,7 @@ static void init_uart(serial_t *obj)
|
|||
UartHandle.Init.Mode = UART_MODE_TX_RX;
|
||||
}
|
||||
|
||||
// Fix because HAL_RCC_GetHCLKFreq() don't update anymore SystemCoreClock
|
||||
// Fix because HAL_RCC_GetHCLKFreq() don't update anymore SystemCoreClock
|
||||
SystemCoreClockUpdate();
|
||||
|
||||
HAL_UART_Init(&UartHandle);
|
||||
|
|
@ -84,28 +84,38 @@ void serial_init(serial_t *obj, PinName tx, PinName rx)
|
|||
|
||||
// Enable UART clock
|
||||
if (obj->uart == UART_1) {
|
||||
__HAL_RCC_USART1_FORCE_RESET();
|
||||
__HAL_RCC_USART1_RELEASE_RESET();
|
||||
__USART1_CLK_ENABLE();
|
||||
obj->index = 0;
|
||||
}
|
||||
|
||||
if (obj->uart == UART_2) {
|
||||
__HAL_RCC_USART2_FORCE_RESET();
|
||||
__HAL_RCC_USART2_RELEASE_RESET();
|
||||
__USART2_CLK_ENABLE();
|
||||
obj->index = 1;
|
||||
}
|
||||
|
||||
if (obj->uart == UART_3) {
|
||||
__HAL_RCC_USART3_FORCE_RESET();
|
||||
__HAL_RCC_USART3_RELEASE_RESET();
|
||||
__USART3_CLK_ENABLE();
|
||||
obj->index = 2;
|
||||
}
|
||||
|
||||
#if defined(UART4_BASE)
|
||||
if (obj->uart == UART_4) {
|
||||
__HAL_RCC_UART4_FORCE_RESET();
|
||||
__HAL_RCC_UART4_RELEASE_RESET();
|
||||
__UART4_CLK_ENABLE();
|
||||
obj->index = 3;
|
||||
}
|
||||
#endif
|
||||
#if defined(UART5_BASE)
|
||||
if (obj->uart == UART_5) {
|
||||
__HAL_RCC_UART5_FORCE_RESET();
|
||||
__HAL_RCC_UART5_RELEASE_RESET();
|
||||
__UART5_CLK_ENABLE();
|
||||
obj->index = 4;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue