@@ -185,7 +185,7 @@ uint32_t spi_getClkFreq(spi_t *obj)
185
185
}
186
186
187
187
188
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
188
+ #if defined(SPI_IFCR_EOTC )
189
189
/**
190
190
* @brief Compute delay before disabling SPI
191
191
* 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)
281
281
handle -> Init .BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256 ;
282
282
}
283
283
284
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
284
+ #if defined(SPI_IFCR_EOTC )
285
285
// Compute disable delay as baudrate has been modified
286
286
obj -> disable_delay = compute_disable_delay (obj );
287
287
#endif
@@ -311,9 +311,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
311
311
}
312
312
313
313
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 )
317
315
handle -> Init .NSSPMode = SPI_NSS_PULSE_DISABLE ;
318
316
#endif
319
317
#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,
488
486
}
489
487
tickstart = HAL_GetTick ();
490
488
491
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
489
+ #if defined(SPI_CR2_TSIZE )
492
490
/* Start transfer */
493
491
LL_SPI_SetTransferSize (_SPI , size );
494
492
LL_SPI_Enable (_SPI );
495
493
LL_SPI_StartMasterTransfer (_SPI );
496
494
#endif
497
495
498
496
while (size -- ) {
499
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
497
+ #if defined(SPI_SR_TXP )
500
498
while (!LL_SPI_IsActiveFlag_TXP (_SPI ));
501
499
#else
502
500
while (!LL_SPI_IsActiveFlag_TXE (_SPI ));
503
501
#endif
504
502
LL_SPI_TransmitData8 (_SPI , * tx_buffer ++ );
505
503
506
504
if (!skipReceive ) {
507
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
505
+ #if defined(SPI_SR_RXP )
508
506
while (!LL_SPI_IsActiveFlag_RXP (_SPI ));
509
507
#else
510
508
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,
517
515
}
518
516
}
519
517
520
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
518
+ #if defined(SPI_IFCR_EOTC )
521
519
// Add a delay before disabling SPI otherwise last-bit/last-clock may be truncated
522
520
// See https://github.com/stm32duino/Arduino_Core_STM32/issues/1294
523
521
// Computed delay is half SPI clock
0 commit comments