Add USART force/release Reset at Init phase

pull/1895/head
bcostm 2016-06-10 11:56:42 +02:00
parent 24e767c10f
commit 6e645e50e8
1 changed files with 10 additions and 0 deletions

View File

@ -93,23 +93,31 @@ void serial_init(serial_t *obj, PinName tx, PinName rx)
// Enable UART clock // Enable UART clock
#if defined(USART1_BASE) #if defined(USART1_BASE)
if (obj->uart == UART_1) { if (obj->uart == UART_1) {
__HAL_RCC_USART1_FORCE_RESET();
__HAL_RCC_USART1_RELEASE_RESET();
__HAL_RCC_USART1_CLK_ENABLE(); __HAL_RCC_USART1_CLK_ENABLE();
obj->index = 0; obj->index = 0;
} }
#endif #endif
if (obj->uart == UART_2) { if (obj->uart == UART_2) {
__HAL_RCC_USART2_FORCE_RESET();
__HAL_RCC_USART2_RELEASE_RESET();
__HAL_RCC_USART2_CLK_ENABLE(); __HAL_RCC_USART2_CLK_ENABLE();
obj->index = 1; obj->index = 1;
} }
if (obj->uart == LPUART_1) { if (obj->uart == LPUART_1) {
__HAL_RCC_LPUART1_FORCE_RESET();
__HAL_RCC_LPUART1_RELEASE_RESET();
__HAL_RCC_LPUART1_CLK_ENABLE(); __HAL_RCC_LPUART1_CLK_ENABLE();
obj->index = 2; obj->index = 2;
} }
#if defined(USART4_BASE) #if defined(USART4_BASE)
if (obj->uart == UART_4) { if (obj->uart == UART_4) {
__HAL_RCC_USART4_FORCE_RESET();
__HAL_RCC_USART4_RELEASE_RESET();
__HAL_RCC_USART4_CLK_ENABLE(); __HAL_RCC_USART4_CLK_ENABLE();
obj->index = 3; obj->index = 3;
} }
@ -117,6 +125,8 @@ void serial_init(serial_t *obj, PinName tx, PinName rx)
#if defined(USART5_BASE) #if defined(USART5_BASE)
if (obj->uart == UART_5) { if (obj->uart == UART_5) {
__HAL_RCC_USART5_FORCE_RESET();
__HAL_RCC_USART5_RELEASE_RESET();
__HAL_RCC_USART5_CLK_ENABLE(); __HAL_RCC_USART5_CLK_ENABLE();
obj->index = 4; obj->index = 4;
} }