@@ -374,12 +374,13 @@ void spi_free(spi_t *obj)
374374#if defined(DUAL_CORE ) && (TARGET_STM32H7 )
375375 LL_HSEM_ReleaseLock (HSEM , CFG_HW_RCC_SEMID , HSEM_CR_COREID_CURRENT );
376376#endif /* DUAL_CORE */
377- // Configure GPIOs
378- pin_function (spiobj -> pin_miso , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
379- pin_function (spiobj -> pin_mosi , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
380- pin_function (spiobj -> pin_sclk , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
377+
378+ // Configure GPIOs back to reset value
379+ pin_function (spiobj -> pin_miso , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
380+ pin_function (spiobj -> pin_mosi , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
381+ pin_function (spiobj -> pin_sclk , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
381382 if (handle -> Init .NSS != SPI_NSS_SOFT ) {
382- pin_function (spiobj -> pin_ssel , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , 0 ));
383+ pin_function (spiobj -> pin_ssel , STM_PIN_DATA (STM_MODE_ANALOG , GPIO_NOPULL , 0 ));
383384 }
384385}
385386
0 commit comments