|
17 | 17 |
|
18 | 18 | #include "serial_api_hal.h" |
19 | 19 |
|
| 20 | +#if defined (STM32GBK1CB) |
| 21 | +#define UART_NUM (4) |
| 22 | +#elif defined (STM32G431xx) || defined (STM32G441xx) |
| 23 | +#define UART_NUM (5) |
| 24 | +#else |
20 | 25 | #define UART_NUM (6) |
21 | | - |
| 26 | +#endif |
22 | 27 |
|
23 | 28 | uint32_t serial_irq_ids[UART_NUM] = {0}; |
24 | 29 | UART_HandleTypeDef uart_handlers[UART_NUM]; |
@@ -80,13 +85,20 @@ static void uart3_irq(void) |
80 | 85 | } |
81 | 86 | #endif |
82 | 87 |
|
83 | | -#if defined(USART4_BASE) |
| 88 | +#if defined(UART4_BASE) |
84 | 89 | static void uart4_irq(void) |
85 | 90 | { |
86 | 91 | uart_irq(UART_4); |
87 | 92 | } |
88 | 93 | #endif |
89 | 94 |
|
| 95 | +#if defined(UART5_BASE) |
| 96 | +static void uart5_irq(void) |
| 97 | +{ |
| 98 | + uart_irq(UART_5); |
| 99 | +} |
| 100 | +#endif |
| 101 | + |
90 | 102 | #if defined(LPUART1_BASE) |
91 | 103 | static void lpuart1_irq(void) |
92 | 104 | { |
@@ -130,13 +142,20 @@ void serial_irq_set(serial_t *obj, SerialIrq irq, uint32_t enable) |
130 | 142 | } |
131 | 143 | #endif |
132 | 144 |
|
133 | | -#if defined(USART4_BASE) |
| 145 | +#if defined(UART4_BASE) |
134 | 146 | if (obj_s->uart == UART_4) { |
135 | | - irq_n = USART3_4_LPUART1_IRQn; |
| 147 | + irq_n = UART4_IRQn; |
136 | 148 | vector = (uint32_t)&uart4_irq; |
137 | 149 | } |
138 | 150 | #endif |
139 | 151 |
|
| 152 | +#if defined(UART5_BASE) |
| 153 | + if (obj_s->uart == UART_5) { |
| 154 | + irq_n = UART5_IRQn; |
| 155 | + vector = (uint32_t)&uart5_irq; |
| 156 | + } |
| 157 | +#endif |
| 158 | + |
140 | 159 | #if defined(LPUART1_BASE) |
141 | 160 | if (obj_s->uart == LPUART_1) { |
142 | 161 | irq_n = LPUART1_IRQn; |
@@ -318,18 +337,22 @@ static IRQn_Type serial_get_irq_n(UARTName uart_name) |
318 | 337 | #endif |
319 | 338 | #if defined(USART3_BASE) |
320 | 339 | case UART_3: |
321 | | - irq_n = USART3_4_LPUART1_IRQn; |
| 340 | + irq_n = USART3_IRQn; |
322 | 341 | break; |
323 | 342 | #endif |
324 | | -#if defined(USART4_BASE) |
| 343 | +#if defined(UART4_BASE) |
325 | 344 | case UART_4: |
326 | | - irq_n = USART3_4_LPUART1_IRQn; |
| 345 | + irq_n = UART4_IRQn; |
| 346 | + break; |
| 347 | +#endif |
| 348 | +#if defined(UART5_BASE) |
| 349 | + case UART_5: |
| 350 | + irq_n = UART5_IRQn; |
327 | 351 | break; |
328 | 352 | #endif |
329 | | - |
330 | 353 | #if defined(LPUART1_BASE) |
331 | 354 | case LPUART_1: |
332 | | - irq_n = USART3_4_LPUART1_IRQn; |
| 355 | + irq_n = LPUART1_IRQn; |
333 | 356 | break; |
334 | 357 | #endif |
335 | 358 | default: |
|
0 commit comments