Skip to content

Commit 73239b6

Browse files
committed
STM32 SPI : correct GPIO free
1 parent 20e9235 commit 73239b6

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

targets/TARGET_STM/stm_spi_api.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)