Skip to content

Commit 53d7115

Browse files
authored
Merge pull request #1895 from bcostm/fix_l0_force_serial_reset
[STM32L0] Add USART force/release Reset at Init phase
2 parents 4dcefa6 + 6e645e5 commit 53d7115

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

hal/targets/hal/TARGET_STM/TARGET_STM32L0/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,30 +93,40 @@ void serial_init(serial_t *obj, PinName tx, PinName rx)
9393
// Enable UART clock
9494
#if defined(USART1_BASE)
9595
if (obj->uart == UART_1) {
96+
__HAL_RCC_USART1_FORCE_RESET();
97+
__HAL_RCC_USART1_RELEASE_RESET();
9698
__HAL_RCC_USART1_CLK_ENABLE();
9799
obj->index = 0;
98100
}
99101
#endif
100102

101103
if (obj->uart == UART_2) {
104+
__HAL_RCC_USART2_FORCE_RESET();
105+
__HAL_RCC_USART2_RELEASE_RESET();
102106
__HAL_RCC_USART2_CLK_ENABLE();
103107
obj->index = 1;
104108
}
105109

106110
if (obj->uart == LPUART_1) {
111+
__HAL_RCC_LPUART1_FORCE_RESET();
112+
__HAL_RCC_LPUART1_RELEASE_RESET();
107113
__HAL_RCC_LPUART1_CLK_ENABLE();
108114
obj->index = 2;
109115
}
110116

111117
#if defined(USART4_BASE)
112118
if (obj->uart == UART_4) {
119+
__HAL_RCC_USART4_FORCE_RESET();
120+
__HAL_RCC_USART4_RELEASE_RESET();
113121
__HAL_RCC_USART4_CLK_ENABLE();
114122
obj->index = 3;
115123
}
116124
#endif
117125

118126
#if defined(USART5_BASE)
119127
if (obj->uart == UART_5) {
128+
__HAL_RCC_USART5_FORCE_RESET();
129+
__HAL_RCC_USART5_RELEASE_RESET();
120130
__HAL_RCC_USART5_CLK_ENABLE();
121131
obj->index = 4;
122132
}

0 commit comments

Comments
 (0)