@@ -350,17 +350,15 @@ void serial_free(serial_t *obj)
350
350
LL_HSEM_ReleaseLock (HSEM , CFG_HW_RCC_SEMID , HSEM_CR_COREID_CURRENT );
351
351
#endif /* DUAL_CORE */
352
352
353
- // Configure GPIOs
354
- pin_function (obj_s -> pin_tx , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
355
-
356
- pin_function (obj_s -> pin_rx , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
357
-
353
+ // Configure GPIOs back to reset value
354
+ pin_function (obj_s -> pin_tx , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
355
+ pin_function (obj_s -> pin_rx , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
358
356
#if DEVICE_SERIAL_FC
359
357
if ( (obj_s -> hw_flow_ctl == UART_HWCONTROL_RTS ) || (obj_s -> hw_flow_ctl == UART_HWCONTROL_RTS_CTS ) ) {
360
- pin_function (obj_s -> pin_rts , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
358
+ pin_function (obj_s -> pin_rts , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
361
359
}
362
360
if ( (obj_s -> hw_flow_ctl == UART_HWCONTROL_CTS ) || (obj_s -> hw_flow_ctl == UART_HWCONTROL_RTS_CTS ) ) {
363
- pin_function (obj_s -> pin_cts , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
361
+ pin_function (obj_s -> pin_cts , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
364
362
}
365
363
#endif
366
364
0 commit comments