Skip to content

Commit 4d96786

Browse files
iabdalkaderdpgeorge
authored andcommitted
stm32/uart: Enable HW flow control for UART 1/5/7/8.
1 parent cf7e71f commit 4d96786

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

ports/stm32/uart.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,16 @@ bool uart_init(pyb_uart_obj_t *uart_obj,
223223
irqn = USART1_IRQn;
224224
pins[0] = MICROPY_HW_UART1_TX;
225225
pins[1] = MICROPY_HW_UART1_RX;
226+
#if defined(MICROPY_HW_UART1_RTS)
227+
if (flow & UART_HWCONTROL_RTS) {
228+
pins[2] = MICROPY_HW_UART1_RTS;
229+
}
230+
#endif
231+
#if defined(MICROPY_HW_UART1_CTS)
232+
if (flow & UART_HWCONTROL_CTS) {
233+
pins[3] = MICROPY_HW_UART1_CTS;
234+
}
235+
#endif
226236
__HAL_RCC_USART1_CLK_ENABLE();
227237
break;
228238
#endif
@@ -322,6 +332,16 @@ bool uart_init(pyb_uart_obj_t *uart_obj,
322332
#endif
323333
pins[0] = MICROPY_HW_UART5_TX;
324334
pins[1] = MICROPY_HW_UART5_RX;
335+
#if defined(MICROPY_HW_UART5_RTS)
336+
if (flow & UART_HWCONTROL_RTS) {
337+
pins[2] = MICROPY_HW_UART5_RTS;
338+
}
339+
#endif
340+
#if defined(MICROPY_HW_UART5_CTS)
341+
if (flow & UART_HWCONTROL_CTS) {
342+
pins[3] = MICROPY_HW_UART5_CTS;
343+
}
344+
#endif
325345
break;
326346
#endif
327347

@@ -364,6 +384,16 @@ bool uart_init(pyb_uart_obj_t *uart_obj,
364384
#endif
365385
pins[0] = MICROPY_HW_UART7_TX;
366386
pins[1] = MICROPY_HW_UART7_RX;
387+
#if defined(MICROPY_HW_UART7_RTS)
388+
if (flow & UART_HWCONTROL_RTS) {
389+
pins[2] = MICROPY_HW_UART7_RTS;
390+
}
391+
#endif
392+
#if defined(MICROPY_HW_UART7_CTS)
393+
if (flow & UART_HWCONTROL_CTS) {
394+
pins[3] = MICROPY_HW_UART7_CTS;
395+
}
396+
#endif
367397
break;
368398
#endif
369399

@@ -381,6 +411,16 @@ bool uart_init(pyb_uart_obj_t *uart_obj,
381411
#endif
382412
pins[0] = MICROPY_HW_UART8_TX;
383413
pins[1] = MICROPY_HW_UART8_RX;
414+
#if defined(MICROPY_HW_UART8_RTS)
415+
if (flow & UART_HWCONTROL_RTS) {
416+
pins[2] = MICROPY_HW_UART8_RTS;
417+
}
418+
#endif
419+
#if defined(MICROPY_HW_UART8_CTS)
420+
if (flow & UART_HWCONTROL_CTS) {
421+
pins[3] = MICROPY_HW_UART8_CTS;
422+
}
423+
#endif
384424
break;
385425
#endif
386426

0 commit comments

Comments
 (0)