Skip to content

Commit d61e7a6

Browse files
chrismas9dpgeorge
authored andcommitted
stm32/uart: Add support for UART4/5 on L0 MCUs.
1 parent 9ca8a50 commit d61e7a6

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

ports/stm32/mpconfigboard_common.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@
196196
#define PYB_EXTI_NUM_VECTORS (30) // TODO (22 configurable, 7 direct)
197197
#define MICROPY_HW_MAX_I2C (3)
198198
#define MICROPY_HW_MAX_TIMER (22)
199-
#define MICROPY_HW_MAX_UART (4)
199+
#define MICROPY_HW_MAX_UART (5)
200200

201201
// Configuration for STM32L4 series
202202
#elif defined(STM32L4)

ports/stm32/stm32_it.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,15 @@ void USART3_8_IRQHandler(void) {
731731
IRQ_EXIT(USART3_8_IRQn);
732732
}
733733

734+
#elif defined(STM32L0)
735+
736+
void USART4_5_IRQHandler(void) {
737+
IRQ_ENTER(USART4_5_IRQn);
738+
uart_irq_handler(4);
739+
uart_irq_handler(5);
740+
IRQ_EXIT(USART4_5_IRQn);
741+
}
742+
734743
#else
735744

736745
void USART3_IRQHandler(void) {

ports/stm32/uart.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ bool uart_init(pyb_uart_obj_t *uart_obj,
247247
UARTx = USART4;
248248
irqn = USART3_8_IRQn;
249249
__HAL_RCC_USART4_CLK_ENABLE();
250+
#elif defined(STM32L0)
251+
UARTx = USART4;
252+
irqn = USART4_5_IRQn;
253+
__HAL_RCC_USART4_CLK_ENABLE();
250254
#else
251255
UARTx = UART4;
252256
irqn = UART4_IRQn;
@@ -274,6 +278,10 @@ bool uart_init(pyb_uart_obj_t *uart_obj,
274278
UARTx = USART5;
275279
irqn = USART3_8_IRQn;
276280
__HAL_RCC_USART5_CLK_ENABLE();
281+
#elif defined(STM32L0)
282+
UARTx = USART5;
283+
irqn = USART4_5_IRQn;
284+
__HAL_RCC_USART5_CLK_ENABLE();
277285
#else
278286
UARTx = UART5;
279287
irqn = UART5_IRQn;

0 commit comments

Comments
 (0)