Initialize the QSPI mode according to the specified parameters in the QSPI_InitTypeDef and initialize the associated handle.
293 HAL_StatusTypeDef status;
304 assert_param(IS_QSPI_CLOCK_PRESCALER(hqspi->Init.ClockPrescaler));
305 assert_param(IS_QSPI_FIFO_THRESHOLD(hqspi->Init.FifoThreshold));
306 assert_param(IS_QSPI_SSHIFT(hqspi->Init.SampleShifting));
307 assert_param(IS_QSPI_FLASH_SIZE(hqspi->Init.FlashSize));
308 assert_param(IS_QSPI_CS_HIGH_TIME(hqspi->Init.ChipSelectHighTime));
309 assert_param(IS_QSPI_CLOCK_MODE(hqspi->Init.ClockMode));
310 #if defined(QUADSPI_CR_DFM) 311 assert_param(IS_QSPI_DUAL_FLASH_MODE(hqspi->Init.DualFlash));
313 if (hqspi->Init.DualFlash != QSPI_DUALFLASH_ENABLE )
327 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1) 340 if(hqspi->MspInitCallback == NULL)
346 hqspi->MspInitCallback(hqspi);
357 MODIFY_REG(hqspi->Instance->CR, QUADSPI_CR_FTHRES,
358 ((hqspi->Init.FifoThreshold - 1U) << QUADSPI_CR_FTHRES_Pos));
366 #if defined(QUADSPI_CR_DFM) 367 MODIFY_REG(hqspi->Instance->CR, (QUADSPI_CR_PRESCALER | QUADSPI_CR_SSHIFT | QUADSPI_CR_FSEL | QUADSPI_CR_DFM),
368 ((hqspi->Init.ClockPrescaler << QUADSPI_CR_PRESCALER_Pos) |
369 hqspi->Init.SampleShifting | hqspi->Init.FlashID | hqspi->Init.DualFlash));
371 MODIFY_REG(hqspi->Instance->CR, (QUADSPI_CR_PRESCALER | QUADSPI_CR_SSHIFT),
372 ((hqspi->Init.ClockPrescaler << QUADSPI_CR_PRESCALER_Pos) |
373 hqspi->Init.SampleShifting));
377 MODIFY_REG(hqspi->Instance->DCR, (QUADSPI_DCR_FSIZE | QUADSPI_DCR_CSHT | QUADSPI_DCR_CKMODE),
378 ((hqspi->Init.FlashSize << QUADSPI_DCR_FSIZE_Pos) |
379 hqspi->Init.ChipSelectHighTime | hqspi->Init.ClockMode));
382 __HAL_QSPI_ENABLE(hqspi);
385 hqspi->ErrorCode = HAL_QSPI_ERROR_NONE;
void HAL_QSPI_TimeOutCallback(QSPI_HandleTypeDef *hqspi)
Timeout callback.
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
void HAL_QSPI_MspInit(QSPI_HandleTypeDef *hqspi)
Initialize the QSPI MSP.
void HAL_QSPI_RxCpltCallback(QSPI_HandleTypeDef *hqspi)
Rx Transfer completed callback.
void HAL_QSPI_AbortCpltCallback(QSPI_HandleTypeDef *hqspi)
Abort completed callback.
void HAL_QSPI_ErrorCallback(QSPI_HandleTypeDef *hqspi)
Transfer Error callback.
void HAL_QSPI_SetTimeout(QSPI_HandleTypeDef *hqspi, uint32_t Timeout)
Set QSPI timeout.
void HAL_QSPI_FifoThresholdCallback(QSPI_HandleTypeDef *hqspi)
FIFO Threshold callback.
void HAL_QSPI_TxCpltCallback(QSPI_HandleTypeDef *hqspi)
Tx Transfer completed callback.
void HAL_QSPI_RxHalfCpltCallback(QSPI_HandleTypeDef *hqspi)
Rx Half Transfer completed callback.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
void HAL_QSPI_CmdCpltCallback(QSPI_HandleTypeDef *hqspi)
Command completed callback.
static HAL_StatusTypeDef QSPI_WaitFlagStateUntilTimeout(QSPI_HandleTypeDef *hqspi, uint32_t Flag, FlagStatus State, uint32_t Tickstart, uint32_t Timeout)
Wait for a flag state until timeout.
void HAL_QSPI_StatusMatchCallback(QSPI_HandleTypeDef *hqspi)
Status Match callback.
void HAL_QSPI_TxHalfCpltCallback(QSPI_HandleTypeDef *hqspi)
Tx Half Transfer completed callback.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))