Skip to content

Commit 9ae7a53

Browse files
authored
Merge pull request stm32duino#197 from fpistm/Fix_USART1-2
Fixed build issue when USART1 or USART2 is not defined
2 parents bd5d1e0 + 6e7e614 commit 9ae7a53

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

cores/arduino/stm32/uart.c

+15-3
Original file line numberDiff line numberDiff line change
@@ -125,21 +125,25 @@ void uart_init(serial_t *obj)
125125
printf("ERROR: UART pins mismatch\n");
126126
return;
127127
}
128-
129128
// Enable USART clock
130-
if(obj->uart == USART1) {
129+
#if defined(USART1_BASE)
130+
else if(obj->uart == USART1) {
131131
__HAL_RCC_USART1_FORCE_RESET();
132132
__HAL_RCC_USART1_RELEASE_RESET();
133133
__HAL_RCC_USART1_CLK_ENABLE();
134134
obj->index = 0;
135135
obj->irq = USART1_IRQn;
136-
} else if(obj->uart == USART2) {
136+
}
137+
#endif
138+
#if defined(USART2_BASE)
139+
else if(obj->uart == USART2) {
137140
__HAL_RCC_USART2_FORCE_RESET();
138141
__HAL_RCC_USART2_RELEASE_RESET();
139142
__HAL_RCC_USART2_CLK_ENABLE();
140143
obj->index = 1;
141144
obj->irq = USART2_IRQn;
142145
}
146+
#endif
143147
#if defined(USART3_BASE)
144148
else if(obj->uart == USART3) {
145149
__HAL_RCC_USART3_FORCE_RESET();
@@ -300,16 +304,20 @@ void uart_deinit(serial_t *obj)
300304
{
301305
// Reset UART and disable clock
302306
switch (obj->index) {
307+
#if defined(USART1_BASE)
303308
case 0:
304309
__HAL_RCC_USART1_FORCE_RESET();
305310
__HAL_RCC_USART1_RELEASE_RESET();
306311
__HAL_RCC_USART1_CLK_DISABLE();
307312
break;
313+
#endif
314+
#if defined(USART2_BASE)
308315
case 1:
309316
__HAL_RCC_USART2_FORCE_RESET();
310317
__HAL_RCC_USART2_RELEASE_RESET();
311318
__HAL_RCC_USART2_CLK_DISABLE();
312319
break;
320+
#endif
313321
#if defined(USART3_BASE)
314322
case 2:
315323
__HAL_RCC_USART3_FORCE_RESET();
@@ -670,22 +678,26 @@ void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
670678
* @param None
671679
* @retval None
672680
*/
681+
#if defined(USART1_BASE)
673682
void USART1_IRQHandler(void)
674683
{
675684
HAL_NVIC_ClearPendingIRQ(USART1_IRQn);
676685
HAL_UART_IRQHandler(uart_handlers[0]);
677686
}
687+
#endif
678688

679689
/**
680690
* @brief USART 2 IRQ handler
681691
* @param None
682692
* @retval None
683693
*/
694+
#if defined(USART2_BASE)
684695
void USART2_IRQHandler(void)
685696
{
686697
HAL_NVIC_ClearPendingIRQ(USART2_IRQn);
687698
HAL_UART_IRQHandler(uart_handlers[1]);
688699
}
700+
#endif
689701

690702
/**
691703
* @brief USART 3 IRQ handler

0 commit comments

Comments
 (0)