Skip to content

Commit 8bd27ca

Browse files
committed
STM32 SPI : Add SPI reset in init
1 parent d3b03de commit 8bd27ca

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

targets/TARGET_STM/stm_spi_api.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,9 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
215215
error("HAL_RCCEx_PeriphCLKConfig\n");
216216
}
217217
#endif /* SPI_IP_VERSION_V2 */
218+
219+
__HAL_RCC_SPI1_FORCE_RESET();
220+
__HAL_RCC_SPI1_RELEASE_RESET();
218221
__HAL_RCC_SPI1_CLK_ENABLE();
219222
spiobj->spiIRQ = SPI1_IRQn;
220223
}
@@ -233,6 +236,9 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
233236
error("HAL_RCCEx_PeriphCLKConfig\n");
234237
}
235238
#endif /* SPI_IP_VERSION_V2 */
239+
240+
__HAL_RCC_SPI2_FORCE_RESET();
241+
__HAL_RCC_SPI2_RELEASE_RESET();
236242
__HAL_RCC_SPI2_CLK_ENABLE();
237243
spiobj->spiIRQ = SPI2_IRQn;
238244
}
@@ -251,6 +257,9 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
251257
error("HAL_RCCEx_PeriphCLKConfig\n");
252258
}
253259
#endif /* SPI_IP_VERSION_V2 */
260+
261+
__HAL_RCC_SPI3_FORCE_RESET();
262+
__HAL_RCC_SPI3_RELEASE_RESET();
254263
__HAL_RCC_SPI3_CLK_ENABLE();
255264
spiobj->spiIRQ = SPI3_IRQn;
256265
}
@@ -265,6 +274,9 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
265274
error("HAL_RCCEx_PeriphCLKConfig\n");
266275
}
267276
#endif /* SPI_IP_VERSION_V2 */
277+
278+
__HAL_RCC_SPI4_FORCE_RESET();
279+
__HAL_RCC_SPI4_RELEASE_RESET();
268280
__HAL_RCC_SPI4_CLK_ENABLE();
269281
spiobj->spiIRQ = SPI4_IRQn;
270282
}
@@ -279,6 +291,9 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
279291
error("HAL_RCCEx_PeriphCLKConfig\n");
280292
}
281293
#endif /* SPI_IP_VERSION_V2 */
294+
295+
__HAL_RCC_SPI5_FORCE_RESET();
296+
__HAL_RCC_SPI5_RELEASE_RESET();
282297
__HAL_RCC_SPI5_CLK_ENABLE();
283298
spiobj->spiIRQ = SPI5_IRQn;
284299
}
@@ -293,6 +308,9 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
293308
error("HAL_RCCEx_PeriphCLKConfig\n");
294309
}
295310
#endif /* SPI_IP_VERSION_V2 */
311+
312+
__HAL_RCC_SPI6_FORCE_RESET();
313+
__HAL_RCC_SPI6_RELEASE_RESET();
296314
__HAL_RCC_SPI6_CLK_ENABLE();
297315
spiobj->spiIRQ = SPI6_IRQn;
298316
}

0 commit comments

Comments
 (0)