@@ -185,7 +185,7 @@ uint32_t spi_getClkFreq(spi_t *obj)
185185}
186186
187187
188- #if defined(STM32H7xx ) || defined( STM32MP1xx )
188+ #if defined(SPI_IFCR_EOTC )
189189/**
190190 * @brief Compute delay before disabling SPI
191191 * See https://github.com/stm32duino/Arduino_Core_STM32/issues/1294
@@ -281,7 +281,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
281281 handle -> Init .BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256 ;
282282 }
283283
284- #if defined(STM32H7xx ) || defined( STM32MP1xx )
284+ #if defined(SPI_IFCR_EOTC )
285285 // Compute disable delay as baudrate has been modified
286286 obj -> disable_delay = compute_disable_delay (obj );
287287#endif
@@ -311,9 +311,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
311311 }
312312
313313 handle -> Init .TIMode = SPI_TIMODE_DISABLE ;
314- #if defined(STM32F0xx ) || defined(STM32F3xx ) || defined(STM32F7xx ) || \
315- defined(STM32G0xx ) || defined(STM32H7xx ) || defined(STM32L4xx ) || \
316- defined(STM32WBxx ) || defined(STM32MP1xx )
314+ #if defined(SPI_NSS_PULSE_DISABLE )
317315 handle -> Init .NSSPMode = SPI_NSS_PULSE_DISABLE ;
318316#endif
319317#ifdef SPI_MASTER_KEEP_IO_STATE_ENABLE
@@ -488,23 +486,23 @@ spi_status_e spi_transfer(spi_t *obj, uint8_t *tx_buffer, uint8_t *rx_buffer,
488486 }
489487 tickstart = HAL_GetTick ();
490488
491- #if defined(STM32H7xx ) || defined( STM32MP1xx )
489+ #if defined(SPI_CR2_TSIZE )
492490 /* Start transfer */
493491 LL_SPI_SetTransferSize (_SPI , size );
494492 LL_SPI_Enable (_SPI );
495493 LL_SPI_StartMasterTransfer (_SPI );
496494#endif
497495
498496 while (size -- ) {
499- #if defined(STM32H7xx ) || defined( STM32MP1xx )
497+ #if defined(SPI_SR_TXP )
500498 while (!LL_SPI_IsActiveFlag_TXP (_SPI ));
501499#else
502500 while (!LL_SPI_IsActiveFlag_TXE (_SPI ));
503501#endif
504502 LL_SPI_TransmitData8 (_SPI , * tx_buffer ++ );
505503
506504 if (!skipReceive ) {
507- #if defined(STM32H7xx ) || defined( STM32MP1xx )
505+ #if defined(SPI_SR_RXP )
508506 while (!LL_SPI_IsActiveFlag_RXP (_SPI ));
509507#else
510508 while (!LL_SPI_IsActiveFlag_RXNE (_SPI ));
@@ -517,7 +515,7 @@ spi_status_e spi_transfer(spi_t *obj, uint8_t *tx_buffer, uint8_t *rx_buffer,
517515 }
518516 }
519517
520- #if defined(STM32H7xx ) || defined( STM32MP1xx )
518+ #if defined(SPI_IFCR_EOTC )
521519 // Add a delay before disabling SPI otherwise last-bit/last-clock may be truncated
522520 // See https://github.com/stm32duino/Arduino_Core_STM32/issues/1294
523521 // Computed delay is half SPI clock
0 commit comments