39 #ifndef __STM32F7xx_HAL_QSPI_H 40 #define __STM32F7xx_HAL_QSPI_H 211 #define HAL_QSPI_ERROR_NONE ((uint32_t)0x00000000U) 212 #define HAL_QSPI_ERROR_TIMEOUT ((uint32_t)0x00000001U) 213 #define HAL_QSPI_ERROR_TRANSFER ((uint32_t)0x00000002U) 214 #define HAL_QSPI_ERROR_DMA ((uint32_t)0x00000004U) 215 #define HAL_QSPI_ERROR_INVALID_PARAM ((uint32_t)0x00000008U) 223 #define QSPI_SAMPLE_SHIFTING_NONE ((uint32_t)0x00000000U) 224 #define QSPI_SAMPLE_SHIFTING_HALFCYCLE ((uint32_t)QUADSPI_CR_SSHIFT) 232 #define QSPI_CS_HIGH_TIME_1_CYCLE ((uint32_t)0x00000000U) 233 #define QSPI_CS_HIGH_TIME_2_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_0) 234 #define QSPI_CS_HIGH_TIME_3_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_1) 235 #define QSPI_CS_HIGH_TIME_4_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_0 | QUADSPI_DCR_CSHT_1) 236 #define QSPI_CS_HIGH_TIME_5_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_2) 237 #define QSPI_CS_HIGH_TIME_6_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_2 | QUADSPI_DCR_CSHT_0) 238 #define QSPI_CS_HIGH_TIME_7_CYCLE ((uint32_t)QUADSPI_DCR_CSHT_2 | QUADSPI_DCR_CSHT_1) 239 #define QSPI_CS_HIGH_TIME_8_CYCLE ((uint32_t)QUADSPI_DCR_CSHT) 247 #define QSPI_CLOCK_MODE_0 ((uint32_t)0x00000000U) 248 #define QSPI_CLOCK_MODE_3 ((uint32_t)QUADSPI_DCR_CKMODE) 256 #define QSPI_FLASH_ID_1 ((uint32_t)0x00000000U) 257 #define QSPI_FLASH_ID_2 ((uint32_t)QUADSPI_CR_FSEL) 265 #define QSPI_DUALFLASH_ENABLE ((uint32_t)QUADSPI_CR_DFM) 266 #define QSPI_DUALFLASH_DISABLE ((uint32_t)0x00000000U) 274 #define QSPI_ADDRESS_8_BITS ((uint32_t)0x00000000U) 275 #define QSPI_ADDRESS_16_BITS ((uint32_t)QUADSPI_CCR_ADSIZE_0) 276 #define QSPI_ADDRESS_24_BITS ((uint32_t)QUADSPI_CCR_ADSIZE_1) 277 #define QSPI_ADDRESS_32_BITS ((uint32_t)QUADSPI_CCR_ADSIZE) 285 #define QSPI_ALTERNATE_BYTES_8_BITS ((uint32_t)0x00000000U) 286 #define QSPI_ALTERNATE_BYTES_16_BITS ((uint32_t)QUADSPI_CCR_ABSIZE_0) 287 #define QSPI_ALTERNATE_BYTES_24_BITS ((uint32_t)QUADSPI_CCR_ABSIZE_1) 288 #define QSPI_ALTERNATE_BYTES_32_BITS ((uint32_t)QUADSPI_CCR_ABSIZE) 296 #define QSPI_INSTRUCTION_NONE ((uint32_t)0x00000000U) 297 #define QSPI_INSTRUCTION_1_LINE ((uint32_t)QUADSPI_CCR_IMODE_0) 298 #define QSPI_INSTRUCTION_2_LINES ((uint32_t)QUADSPI_CCR_IMODE_1) 299 #define QSPI_INSTRUCTION_4_LINES ((uint32_t)QUADSPI_CCR_IMODE) 307 #define QSPI_ADDRESS_NONE ((uint32_t)0x00000000U) 308 #define QSPI_ADDRESS_1_LINE ((uint32_t)QUADSPI_CCR_ADMODE_0) 309 #define QSPI_ADDRESS_2_LINES ((uint32_t)QUADSPI_CCR_ADMODE_1) 310 #define QSPI_ADDRESS_4_LINES ((uint32_t)QUADSPI_CCR_ADMODE) 318 #define QSPI_ALTERNATE_BYTES_NONE ((uint32_t)0x00000000U) 319 #define QSPI_ALTERNATE_BYTES_1_LINE ((uint32_t)QUADSPI_CCR_ABMODE_0) 320 #define QSPI_ALTERNATE_BYTES_2_LINES ((uint32_t)QUADSPI_CCR_ABMODE_1) 321 #define QSPI_ALTERNATE_BYTES_4_LINES ((uint32_t)QUADSPI_CCR_ABMODE) 329 #define QSPI_DATA_NONE ((uint32_t)0X00000000) 330 #define QSPI_DATA_1_LINE ((uint32_t)QUADSPI_CCR_DMODE_0) 331 #define QSPI_DATA_2_LINES ((uint32_t)QUADSPI_CCR_DMODE_1) 332 #define QSPI_DATA_4_LINES ((uint32_t)QUADSPI_CCR_DMODE) 340 #define QSPI_DDR_MODE_DISABLE ((uint32_t)0x00000000U) 341 #define QSPI_DDR_MODE_ENABLE ((uint32_t)QUADSPI_CCR_DDRM) 349 #define QSPI_DDR_HHC_ANALOG_DELAY ((uint32_t)0x00000000U) 350 #define QSPI_DDR_HHC_HALF_CLK_DELAY ((uint32_t)QUADSPI_CCR_DHHC) 358 #define QSPI_SIOO_INST_EVERY_CMD ((uint32_t)0x00000000U) 359 #define QSPI_SIOO_INST_ONLY_FIRST_CMD ((uint32_t)QUADSPI_CCR_SIOO) 367 #define QSPI_MATCH_MODE_AND ((uint32_t)0x00000000U) 368 #define QSPI_MATCH_MODE_OR ((uint32_t)QUADSPI_CR_PMM) 376 #define QSPI_AUTOMATIC_STOP_DISABLE ((uint32_t)0x00000000U) 377 #define QSPI_AUTOMATIC_STOP_ENABLE ((uint32_t)QUADSPI_CR_APMS) 385 #define QSPI_TIMEOUT_COUNTER_DISABLE ((uint32_t)0x00000000U) 386 #define QSPI_TIMEOUT_COUNTER_ENABLE ((uint32_t)QUADSPI_CR_TCEN) 394 #define QSPI_FLAG_BUSY QUADSPI_SR_BUSY 395 #define QSPI_FLAG_TO QUADSPI_SR_TOF 396 #define QSPI_FLAG_SM QUADSPI_SR_SMF 397 #define QSPI_FLAG_FT QUADSPI_SR_FTF 398 #define QSPI_FLAG_TC QUADSPI_SR_TCF 399 #define QSPI_FLAG_TE QUADSPI_SR_TEF 407 #define QSPI_IT_TO QUADSPI_CR_TOIE 408 #define QSPI_IT_SM QUADSPI_CR_SMIE 409 #define QSPI_IT_FT QUADSPI_CR_FTIE 410 #define QSPI_IT_TC QUADSPI_CR_TCIE 411 #define QSPI_IT_TE QUADSPI_CR_TEIE 419 #define HAL_QPSI_TIMEOUT_DEFAULT_VALUE ((uint32_t)5000) 437 #define __HAL_QSPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_QSPI_STATE_RESET) 443 #define __HAL_QSPI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, QUADSPI_CR_EN) 449 #define __HAL_QSPI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, QUADSPI_CR_EN) 462 #define __HAL_QSPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__)) 476 #define __HAL_QSPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__)) 489 #define __HAL_QSPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (READ_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__)) == (__INTERRUPT__)) 504 #define __HAL_QSPI_GET_FLAG(__HANDLE__, __FLAG__) (READ_BIT((__HANDLE__)->Instance->SR, (__FLAG__)) != 0) 516 #define __HAL_QSPI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->FCR, (__FLAG__)) 615 #define IS_QSPI_CLOCK_PRESCALER(PRESCALER) ((PRESCALER) <= 0xFF) 623 #define IS_QSPI_FIFO_THRESHOLD(THR) (((THR) > 0) && ((THR) <= 32)) 628 #define IS_QSPI_SSHIFT(SSHIFT) (((SSHIFT) == QSPI_SAMPLE_SHIFTING_NONE) || \ 629 ((SSHIFT) == QSPI_SAMPLE_SHIFTING_HALFCYCLE)) 634 #define IS_QSPI_FLASH_SIZE(FSIZE) (((FSIZE) <= 31)) 639 #define IS_QSPI_CS_HIGH_TIME(CSHTIME) (((CSHTIME) == QSPI_CS_HIGH_TIME_1_CYCLE) || \ 640 ((CSHTIME) == QSPI_CS_HIGH_TIME_2_CYCLE) || \ 641 ((CSHTIME) == QSPI_CS_HIGH_TIME_3_CYCLE) || \ 642 ((CSHTIME) == QSPI_CS_HIGH_TIME_4_CYCLE) || \ 643 ((CSHTIME) == QSPI_CS_HIGH_TIME_5_CYCLE) || \ 644 ((CSHTIME) == QSPI_CS_HIGH_TIME_6_CYCLE) || \ 645 ((CSHTIME) == QSPI_CS_HIGH_TIME_7_CYCLE) || \ 646 ((CSHTIME) == QSPI_CS_HIGH_TIME_8_CYCLE)) 648 #define IS_QSPI_CLOCK_MODE(CLKMODE) (((CLKMODE) == QSPI_CLOCK_MODE_0) || \ 649 ((CLKMODE) == QSPI_CLOCK_MODE_3)) 651 #define IS_QSPI_FLASH_ID(FLA) (((FLA) == QSPI_FLASH_ID_1) || \ 652 ((FLA) == QSPI_FLASH_ID_2)) 654 #define IS_QSPI_DUAL_FLASH_MODE(MODE) (((MODE) == QSPI_DUALFLASH_ENABLE) || \ 655 ((MODE) == QSPI_DUALFLASH_DISABLE)) 661 #define IS_QSPI_INSTRUCTION(INSTRUCTION) ((INSTRUCTION) <= 0xFF) 666 #define IS_QSPI_ADDRESS_SIZE(ADDR_SIZE) (((ADDR_SIZE) == QSPI_ADDRESS_8_BITS) || \ 667 ((ADDR_SIZE) == QSPI_ADDRESS_16_BITS) || \ 668 ((ADDR_SIZE) == QSPI_ADDRESS_24_BITS) || \ 669 ((ADDR_SIZE) == QSPI_ADDRESS_32_BITS)) 671 #define IS_QSPI_ALTERNATE_BYTES_SIZE(SIZE) (((SIZE) == QSPI_ALTERNATE_BYTES_8_BITS) || \ 672 ((SIZE) == QSPI_ALTERNATE_BYTES_16_BITS) || \ 673 ((SIZE) == QSPI_ALTERNATE_BYTES_24_BITS) || \ 674 ((SIZE) == QSPI_ALTERNATE_BYTES_32_BITS)) 680 #define IS_QSPI_DUMMY_CYCLES(DCY) ((DCY) <= 31) 685 #define IS_QSPI_INSTRUCTION_MODE(MODE) (((MODE) == QSPI_INSTRUCTION_NONE) || \ 686 ((MODE) == QSPI_INSTRUCTION_1_LINE) || \ 687 ((MODE) == QSPI_INSTRUCTION_2_LINES) || \ 688 ((MODE) == QSPI_INSTRUCTION_4_LINES)) 690 #define IS_QSPI_ADDRESS_MODE(MODE) (((MODE) == QSPI_ADDRESS_NONE) || \ 691 ((MODE) == QSPI_ADDRESS_1_LINE) || \ 692 ((MODE) == QSPI_ADDRESS_2_LINES) || \ 693 ((MODE) == QSPI_ADDRESS_4_LINES)) 695 #define IS_QSPI_ALTERNATE_BYTES_MODE(MODE) (((MODE) == QSPI_ALTERNATE_BYTES_NONE) || \ 696 ((MODE) == QSPI_ALTERNATE_BYTES_1_LINE) || \ 697 ((MODE) == QSPI_ALTERNATE_BYTES_2_LINES) || \ 698 ((MODE) == QSPI_ALTERNATE_BYTES_4_LINES)) 700 #define IS_QSPI_DATA_MODE(MODE) (((MODE) == QSPI_DATA_NONE) || \ 701 ((MODE) == QSPI_DATA_1_LINE) || \ 702 ((MODE) == QSPI_DATA_2_LINES) || \ 703 ((MODE) == QSPI_DATA_4_LINES)) 705 #define IS_QSPI_DDR_MODE(DDR_MODE) (((DDR_MODE) == QSPI_DDR_MODE_DISABLE) || \ 706 ((DDR_MODE) == QSPI_DDR_MODE_ENABLE)) 708 #define IS_QSPI_DDR_HHC(DDR_HHC) (((DDR_HHC) == QSPI_DDR_HHC_ANALOG_DELAY) || \ 709 ((DDR_HHC) == QSPI_DDR_HHC_HALF_CLK_DELAY)) 711 #define IS_QSPI_SIOO_MODE(SIOO_MODE) (((SIOO_MODE) == QSPI_SIOO_INST_EVERY_CMD) || \ 712 ((SIOO_MODE) == QSPI_SIOO_INST_ONLY_FIRST_CMD)) 717 #define IS_QSPI_INTERVAL(INTERVAL) ((INTERVAL) <= QUADSPI_PIR_INTERVAL) 725 #define IS_QSPI_STATUS_BYTES_SIZE(SIZE) (((SIZE) >= 1) && ((SIZE) <= 4)) 729 #define IS_QSPI_MATCH_MODE(MODE) (((MODE) == QSPI_MATCH_MODE_AND) || \ 730 ((MODE) == QSPI_MATCH_MODE_OR)) 732 #define IS_QSPI_AUTOMATIC_STOP(APMS) (((APMS) == QSPI_AUTOMATIC_STOP_DISABLE) || \ 733 ((APMS) == QSPI_AUTOMATIC_STOP_ENABLE)) 735 #define IS_QSPI_TIMEOUT_ACTIVATION(TCEN) (((TCEN) == QSPI_TIMEOUT_COUNTER_DISABLE) || \ 736 ((TCEN) == QSPI_TIMEOUT_COUNTER_ENABLE)) 741 #define IS_QSPI_TIMEOUT_PERIOD(PERIOD) ((PERIOD) <= 0xFFFF) 746 #define IS_QSPI_GET_FLAG(FLAG) (((FLAG) == QSPI_FLAG_BUSY) || \ 747 ((FLAG) == QSPI_FLAG_TO) || \ 748 ((FLAG) == QSPI_FLAG_SM) || \ 749 ((FLAG) == QSPI_FLAG_FT) || \ 750 ((FLAG) == QSPI_FLAG_TC) || \ 751 ((FLAG) == QSPI_FLAG_TE)) 753 #define IS_QSPI_IT(IT) ((((IT) & (uint32_t)0xFFE0FFFFU) == 0x00000000U) && ((IT) != 0x00000000U))
QSPI Handle Structure definition.
HAL_QSPI_StateTypeDef
HAL QSPI State structures definition.
HAL_StatusTypeDef HAL_QSPI_Abort(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_SetFifoThreshold(QSPI_HandleTypeDef *hqspi, uint32_t Threshold)
void HAL_QSPI_IRQHandler(QSPI_HandleTypeDef *hqspi)
void HAL_QSPI_TxCpltCallback(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_Transmit_DMA(QSPI_HandleTypeDef *hqspi, uint8_t *pData)
HAL_StatusTypeDef HAL_QSPI_AutoPolling_IT(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg)
QSPI Command structure definition.
__IO HAL_QSPI_StateTypeDef State
HAL_LockTypeDef
HAL Lock structures definition.
__IO uint16_t TxXferCount
void HAL_QSPI_FifoThresholdCallback(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_DeInit(QSPI_HandleTypeDef *hqspi)
uint32_t DdrHoldHalfCycle
void HAL_QSPI_StatusMatchCallback(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_Receive_DMA(QSPI_HandleTypeDef *hqspi, uint8_t *pData)
HAL_StatusTypeDef HAL_QSPI_Transmit(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout)
void HAL_QSPI_ErrorCallback(QSPI_HandleTypeDef *hqspi)
void HAL_QSPI_RxHalfCpltCallback(QSPI_HandleTypeDef *hqspi)
QUAD Serial Peripheral Interface.
HAL_StatusTypeDef HAL_QSPI_AutoPolling(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg, uint32_t Timeout)
void HAL_QSPI_RxCpltCallback(QSPI_HandleTypeDef *hqspi)
QSPI Memory Mapped mode configuration structure definition.
void HAL_QSPI_MspInit(QSPI_HandleTypeDef *hqspi)
void HAL_QSPI_TxHalfCpltCallback(QSPI_HandleTypeDef *hqspi)
QSPI Auto Polling mode configuration structure definition.
uint32_t AlternateBytesSize
QUADSPI_TypeDef * Instance
void HAL_QSPI_SetTimeout(QSPI_HandleTypeDef *hqspi, uint32_t Timeout)
uint32_t HAL_QSPI_GetError(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_Command_IT(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd)
void HAL_QSPI_AbortCpltCallback(QSPI_HandleTypeDef *hqspi)
void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_Transmit_IT(QSPI_HandleTypeDef *hqspi, uint8_t *pData)
HAL_StatusTypeDef HAL_QSPI_Abort_IT(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_MemoryMapped(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_MemoryMappedTypeDef *cfg)
DMA handle Structure definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
QSPI Init structure definition.
__IO uint16_t RxXferCount
__IO HAL_LockTypeDef Lock
HAL_StatusTypeDef HAL_QSPI_Init(QSPI_HandleTypeDef *hqspi)
uint32_t ChipSelectHighTime
HAL_StatusTypeDef
HAL Status structures definition.
uint32_t HAL_QSPI_GetFifoThreshold(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_Command(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, uint32_t Timeout)
void HAL_QSPI_CmdCpltCallback(QSPI_HandleTypeDef *hqspi)
HAL_StatusTypeDef HAL_QSPI_Receive_IT(QSPI_HandleTypeDef *hqspi, uint8_t *pData)
HAL_QSPI_StateTypeDef HAL_QSPI_GetState(QSPI_HandleTypeDef *hqspi)
uint32_t AlternateByteMode
void HAL_QSPI_TimeOutCallback(QSPI_HandleTypeDef *hqspi)
uint32_t TimeOutActivation
HAL_StatusTypeDef HAL_QSPI_Receive(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout)