Merge pull request #13862 from jeromecoutant/PR_RTS_FREE

STM32 SERIAL: free RTS/CTS pins
pull/13802/head
Martin Kojtal 2020-11-05 15:43:29 +00:00 committed by GitHub
commit c87736574f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 0 deletions

View File

@ -667,6 +667,7 @@ static void _serial_set_flow_control_direct(serial_t *obj, FlowControl type, con
if (type == FlowControlRTS) {
// Enable RTS
MBED_ASSERT(pinmap->rx_flow_pin != NC);
obj_s->hw_flow_ctl = UART_HWCONTROL_RTS;
obj_s->pin_rts = pinmap->rx_flow_pin;
// Enable the pin for RTS function
pin_function(pinmap->rx_flow_pin, pinmap->rx_flow_function);

View File

@ -355,6 +355,15 @@ void serial_free(serial_t *obj)
pin_function(obj_s->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
#if DEVICE_SERIAL_FC
if ( (obj_s->hw_flow_ctl == UART_HWCONTROL_RTS) || (obj_s->hw_flow_ctl == UART_HWCONTROL_RTS_CTS) ) {
pin_function(obj_s->pin_rts, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
}
if ( (obj_s->hw_flow_ctl == UART_HWCONTROL_CTS) || (obj_s->hw_flow_ctl == UART_HWCONTROL_RTS_CTS) ) {
pin_function(obj_s->pin_cts, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
}
#endif
serial_irq_ids[obj_s->index] = 0;
}