@@ -100,6 +100,8 @@ STATIC void uart_clk_irq_enable(busio_uart_obj_t *self, USART_TypeDef * USARTx)
100
100
#ifdef USART1
101
101
if (USARTx == USART1 ) {
102
102
reserved_uart [0 ] = true;
103
+ __HAL_RCC_USART1_FORCE_RESET ();
104
+ __HAL_RCC_USART1_RELEASE_RESET ();
103
105
__HAL_RCC_USART1_CLK_ENABLE ();
104
106
self -> irq = USART1_IRQn ;
105
107
//HAL_NVIC_SetPriority(USART1_IRQn, 2,1);
@@ -111,6 +113,8 @@ STATIC void uart_clk_irq_enable(busio_uart_obj_t *self, USART_TypeDef * USARTx)
111
113
#ifdef USART2
112
114
if (USARTx == USART2 ) {
113
115
reserved_uart [1 ] = true;
116
+ __HAL_RCC_USART2_FORCE_RESET ();
117
+ __HAL_RCC_USART2_RELEASE_RESET ();
114
118
__HAL_RCC_USART2_CLK_ENABLE ();
115
119
self -> irq = USART2_IRQn ;
116
120
//HAL_NVIC_SetPriority(USART2_IRQn, 2,1);
@@ -122,6 +126,8 @@ STATIC void uart_clk_irq_enable(busio_uart_obj_t *self, USART_TypeDef * USARTx)
122
126
#ifdef USART3
123
127
if (USARTx == USART3 ) {
124
128
reserved_uart [2 ] = true;
129
+ __HAL_RCC_USART3_FORCE_RESET ();
130
+ __HAL_RCC_USART3_RELEASE_RESET ();
125
131
__HAL_RCC_USART3_CLK_ENABLE ();
126
132
self -> irq = USART3_IRQn ;
127
133
//HAL_NVIC_SetPriority(USART3_IRQn, 2,1);
@@ -133,6 +139,8 @@ STATIC void uart_clk_irq_enable(busio_uart_obj_t *self, USART_TypeDef * USARTx)
133
139
#ifdef UART4
134
140
if (USARTx == UART4 ) {
135
141
reserved_uart [3 ] = true;
142
+ __HAL_RCC_UART4_FORCE_RESET ();
143
+ __HAL_RCC_UART4_RELEASE_RESET ();
136
144
__HAL_RCC_UART4_CLK_ENABLE ();
137
145
self -> irq = UART4_IRQn ;
138
146
//HAL_NVIC_SetPriority(UART4_IRQn, 2,1);
@@ -144,6 +152,8 @@ STATIC void uart_clk_irq_enable(busio_uart_obj_t *self, USART_TypeDef * USARTx)
144
152
#ifdef UART5
145
153
if (USARTx == UART5 ) {
146
154
reserved_uart [4 ] = true;
155
+ __HAL_RCC_UART5_FORCE_RESET ();
156
+ __HAL_RCC_UART5_RELEASE_RESET ();
147
157
__HAL_RCC_UART5_CLK_ENABLE ();
148
158
self -> irq = UART5_IRQn ;
149
159
//NVIC_SetPriority(UART5_IRQn, 7);
@@ -155,6 +165,8 @@ STATIC void uart_clk_irq_enable(busio_uart_obj_t *self, USART_TypeDef * USARTx)
155
165
#ifdef USART6
156
166
if (USARTx == USART6 ) {
157
167
reserved_uart [5 ] = true;
168
+ __HAL_RCC_USART6_FORCE_RESET ();
169
+ __HAL_RCC_USART6_RELEASE_RESET ();
158
170
__HAL_RCC_USART6_CLK_ENABLE ();
159
171
self -> irq = USART6_IRQn ;
160
172
//NVIC_SetPriority(USART6_IRQn, 7);
0 commit comments