41 HAL_QSPI_IRQHandler(&hqspi);
115 _hqspi->Instance = QUADSPI;
119 if (HAL_QSPI_DeInit(
_hqspi) != HAL_OK)
125 if (HAL_QSPI_Init(
_hqspi) != HAL_OK)
173 HAL_StatusTypeDef sts;
179 _hqspi->Instance = QUADSPI;
191 if ((sts = HAL_QSPI_DeInit(
_hqspi)) != HAL_OK)
209 HAL_StatusTypeDef sts;
210 QSPI_CommandTypeDef sCommand = {0};
217 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
219 sCommand.AddressMode = QSPI_ADDRESS_4_LINES;
220 sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
221 sCommand.Address = ReadAddr;
222 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_4_LINES;
223 sCommand.AlternateBytesSize = QSPI_ALTERNATE_BYTES_8_BITS;
224 sCommand.AlternateBytes = 0;
225 sCommand.DataMode = QSPI_DATA_4_LINES;
227 sCommand.NbData = Size;
228 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
229 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
230 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
233 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
247 HAL_StatusTypeDef sts;
249 QSPI_CommandTypeDef sCommand = {0};
250 uint32_t end_addr, current_size, current_addr;
256 if (current_size > Size)
260 current_addr = WriteAddr;
261 end_addr = WriteAddr + Size;
268 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
270 sCommand.AddressMode = QSPI_ADDRESS_1_LINE;
271 sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
272 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
273 sCommand.DataMode = QSPI_DATA_1_LINE;
274 sCommand.DummyCycles = 0;
275 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
276 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
277 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
281 sCommand.Address = current_addr;
282 sCommand.NbData = current_size;
289 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
301 current_addr += current_size;
302 pData += current_size;
304 }
while (current_addr < end_addr);
314 QSPI_CommandTypeDef sCommand = {0};
321 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
323 sCommand.AddressMode = QSPI_ADDRESS_1_LINE;
324 sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
326 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
327 sCommand.DataMode = QSPI_DATA_NONE;
328 sCommand.DummyCycles = 0;
329 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
330 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
331 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
338 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
355 QSPI_CommandTypeDef sCommand = {0};
365 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
367 sCommand.AddressMode = QSPI_ADDRESS_1_LINE;
368 sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
370 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
371 sCommand.DataMode = QSPI_DATA_NONE;
372 sCommand.DummyCycles = 0;
373 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
374 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
375 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
382 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
393 QSPI_CommandTypeDef sCommand = {0};
400 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
402 sCommand.AddressMode = QSPI_ADDRESS_NONE;
403 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
404 sCommand.DataMode = QSPI_DATA_NONE;
405 sCommand.DummyCycles = 0;
406 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
407 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
408 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
415 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
427 HAL_StatusTypeDef sts;
428 QSPI_CommandTypeDef sCommand = {0};
432 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
434 sCommand.AddressMode = QSPI_ADDRESS_NONE;
435 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
436 sCommand.DataMode = QSPI_DATA_1_LINE;
437 sCommand.DummyCycles = 0;
439 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
440 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
441 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
444 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
448 if ((sts = HAL_QSPI_Receive(
_hqspi, ®1, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
455 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
459 if ((sts = HAL_QSPI_Receive(
_hqspi, ®2, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
462 *Reg = (reg2 << 8) + reg1;
471 HAL_StatusTypeDef sts;
473 QSPI_CommandTypeDef sCommand = {0};
488 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
490 sCommand.AddressMode = QSPI_ADDRESS_NONE;
491 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
492 sCommand.DataMode = QSPI_DATA_1_LINE;
493 sCommand.DummyCycles = 0;
495 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
496 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
497 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
500 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
543 QSPI_CommandTypeDef sCommand = {0};
544 QSPI_MemoryMappedTypeDef sMemMappedCfg = {0};
547 if (
_hqspi->State == HAL_QSPI_STATE_BUSY_MEM_MAPPED)
551 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
553 sCommand.AddressMode = QSPI_ADDRESS_4_LINES;
554 sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
555 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_4_LINES;
556 sCommand.AlternateBytesSize = QSPI_ALTERNATE_BYTES_8_BITS;
557 sCommand.AlternateBytes = 0x20;
559 sCommand.DataMode = QSPI_DATA_4_LINES;
561 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
562 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
563 sCommand.SIOOMode = QSPI_SIOO_INST_ONLY_FIRST_CMD;
566 sMemMappedCfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;
575 if (__HAL_QSPI_GET_FLAG(
_hqspi, QSPI_FLAG_BUSY) == SET) {
576 if (HAL_QSPI_Abort(
_hqspi) != HAL_OK)
588 QSPI_CommandTypeDef sCommand = {0};
595 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
597 sCommand.AddressMode = QSPI_ADDRESS_NONE;
598 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
599 sCommand.DataMode = QSPI_DATA_NONE;
600 sCommand.DummyCycles = 0;
601 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
602 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
603 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
610 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
626 QSPI_CommandTypeDef sCommand = {0};
631 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
633 sCommand.AddressMode = QSPI_ADDRESS_NONE;
634 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
635 sCommand.DataMode = QSPI_DATA_NONE;
636 sCommand.DummyCycles = 0;
637 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
638 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
639 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
646 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
675 if (HAL_QSPI_Receive_IT(
_hqspi, pData) != HAL_OK)
691 if (HAL_QSPI_Transmit_IT(
_hqspi, pData) != HAL_OK)
708 if (HAL_QSPI_AutoPolling_IT(
_hqspi, cmd, cfg) != HAL_OK)
717 bool bSetOFlag =
false;
718 bool bTimeOut =
false;
719 bool bMatchField =
false;
721 if( Timeout < millis()) bSetOFlag =
true;
722 while((!bTimeOut)&&(!bMatchField)) {
731 if(millis() < Timeout) bSetOFlag =
false;
733 if(millis() > Timeout) bTimeOut =
true;
746 QSPI_CommandTypeDef sCommand = {0};
749 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
751 sCommand.AddressMode = QSPI_ADDRESS_NONE;
752 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
753 sCommand.DataMode = QSPI_DATA_NONE;
754 sCommand.DummyCycles = 0;
755 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
756 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
757 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
766 QSPI_CommandTypeDef sCommand = {0};
769 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
771 sCommand.AddressMode = QSPI_ADDRESS_NONE;
772 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
773 sCommand.DataMode = QSPI_DATA_NONE;
774 sCommand.DummyCycles = 0;
775 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
776 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
777 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
789 QSPI_CommandTypeDef sCommand = {0};
792 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
793 sCommand.Instruction = RESET_ENABLE_CMD;
794 sCommand.AddressMode = QSPI_ADDRESS_NONE;
795 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
796 sCommand.DataMode = QSPI_DATA_NONE;
797 sCommand.DummyCycles = 0;
798 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
799 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
800 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
803 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
807 sCommand.Instruction = RESET_MEMORY_CMD;
808 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
829 QSPI_CommandTypeDef sCommand = {0};
833 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
834 sCommand.Instruction = READ_VOL_CFG_REG_CMD;
835 sCommand.AddressMode = QSPI_ADDRESS_NONE;
836 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
837 sCommand.DataMode = QSPI_DATA_1_LINE;
838 sCommand.DummyCycles = 0;
840 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
841 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
842 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
845 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
849 if (HAL_QSPI_Receive(
_hqspi, ®, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
857 sCommand.Instruction = WRITE_VOL_CFG_REG_CMD;
861 if (HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
865 if (HAL_QSPI_Transmit(
_hqspi, ®, HAL_QSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
876 QSPI_CommandTypeDef sCommand = {0};
879 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
881 sCommand.AddressMode = QSPI_ADDRESS_NONE;
882 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
883 sCommand.DataMode = QSPI_DATA_NONE;
884 sCommand.DummyCycles = 0;
885 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
886 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
887 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
896 HAL_StatusTypeDef sts;
897 QSPI_CommandTypeDef sCommand = {0};
898 QSPI_AutoPollingTypeDef sConfig = {0};
901 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
903 sCommand.AddressMode = QSPI_ADDRESS_NONE;
904 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
905 sCommand.DataMode = QSPI_DATA_NONE;
906 sCommand.DummyCycles = 0;
907 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
908 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
909 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
911 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
917 sConfig.MatchMode = QSPI_MATCH_MODE_AND;
918 sConfig.StatusBytesSize = 1;
919 sConfig.Interval = 0x10;
920 sConfig.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
923 sCommand.DataMode = QSPI_DATA_1_LINE;
932 HAL_StatusTypeDef sts;
933 QSPI_CommandTypeDef sCommand = {0};
934 QSPI_AutoPollingTypeDef sConfig = {0};
937 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
939 sCommand.AddressMode = QSPI_ADDRESS_NONE;
940 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
941 sCommand.DataMode = QSPI_DATA_NONE;
942 sCommand.DummyCycles = 0;
943 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
944 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
945 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
947 if ((sts = HAL_QSPI_Command(
_hqspi, &sCommand, HAL_QSPI_TIMEOUT_DEFAULT_VALUE)) != HAL_OK)
951 sConfig.Match = RESET;
953 sConfig.MatchMode = QSPI_MATCH_MODE_AND;
954 sConfig.StatusBytesSize = 1;
955 sConfig.Interval = 0x10;
956 sConfig.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
959 sCommand.DataMode = QSPI_DATA_1_LINE;
968 QSPI_CommandTypeDef sCommand = {0};
971 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
973 sCommand.AddressMode = QSPI_ADDRESS_NONE;
974 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
975 sCommand.DataMode = QSPI_DATA_NONE;
976 sCommand.DummyCycles = 0;
977 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
978 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
979 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
989 QSPI_CommandTypeDef sCommand = {0};
990 QSPI_AutoPollingTypeDef sConfig = {0};
993 sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
995 sCommand.AddressMode = QSPI_ADDRESS_NONE;
996 sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
997 sCommand.DataMode = QSPI_DATA_1_LINE;
998 sCommand.DummyCycles = 0;
999 sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
1000 sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
1001 sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
1003 sConfig.Match = RESET;
1005 sConfig.MatchMode = QSPI_MATCH_MODE_AND;
1006 sConfig.StatusBytesSize = 1;
1007 sConfig.Interval = 0x10;
1008 sConfig.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
#define QUAD_CONTINUOUS_READ_MODE_RESET
#define WRITE_DISABLE_CMD
#define PROG_ERASE_SUSPEND_CMD
#define AT25SF161_SECTOR_ERASE_MAX_TIME
#define DEEP_POWER_DOWN_CMD
#define PROG_ERASE_RESUME_CMD
#define AT25SF161_FLASH_SIZE
AT25SF161 Configuration.
#define AT25SF161_FS_ERSUS
#define AT25SF161_BLOCK_SIZE
#define AT25SF161_DUMMY_CYCLES_READ_QUAD
#define QUAD_INOUT_FAST_READ_CMD
#define WRITE_STATUS_REG_CMD
#define WRITE_EN_VOLAT_STATUS_REG_CMD
#define READ_STATUS_REG_CMD
#define RESUME_FROM_DEEP_PWD_CMD
#define AT25SF161_BULK_ERASE_MAX_TIME
#define READ_STATUS2_REG_CMD
#define AT25SF161_BLOCK_ERASE_MAX_TIME
#define AT25SF161_PAGE_SIZE
#define AT25SF161_SECTOR_SIZE
#define AT25SF161_SR_BUSY
AT25SF161 Registers.
QSPI_StatusTypeDef BSP_QSPI_Erase_Chip(void)
Erases the entire QSPI memory.
QSPI_StatusTypeDef BSP_QSPI_EnableMemoryMappedMode(void)
Configure the QSPI in memory-mapped mode.
QSPI_StatusTypeDef BSP_QSPI_DeInit(void)
De-Initializes the QSPI interface.
QSPI_StatusTypeDef BSP_QSPI_ReadStatus(uint32_t *Reg)
Reads current full status registers (byte1 and 2) of the QSPI memory.
uint8_t BSP_QSPI_ResumeErase(void)
This function resumes a paused erase command.
QSPI_StatusTypeDef BSP_QSPI_GetInfo(QSPI_Info *pInfo)
Return the configuration of the QSPI memory.
QSPI_StatusTypeDef QSPI_DisableContinuousMode(void)
This function disable Continuous Read Mode Reset - Quad.
QSPI_StatusTypeDef QSPI_SetDeepPowerDown(void)
This function enter in deep power down the QSPI memory.
QSPI_StatusTypeDef QSPI_ExitDeepPowerDown(void)
This function exit from deep power down the QSPI memory.
QSPI_StatusTypeDef BSP_QSPI_DisableMemoryMappedMode(void)
Disable the QSPI memory-mapped mode.
QSPI_StatusTypeDef BSP_QSPI_Init(void)
Initializes the QSPI interface.
QSPI_StatusTypeDef BSP_QSPI_Read(uint8_t *pData, uint32_t ReadAddr, uint32_t Size)
Reads an amount of data from the QSPI memory.
QSPI_StatusTypeDef BSP_QSPI_Transmit(uint8_t *pData, uint32_t Timeout)
Transmit an amount of data in interrupt mode.
QSPI_StatusTypeDef QSPI_DummyCyclesCfg(void)
This function configure the dummy cycles on memory side.
static QSPI_IT_EventFlag * _evtFlag
QSPI_StatusTypeDef BSP_QSPI_WaitingForEvent(uint32_t Timeout)
Waiting event for QSPI Module.
QSPI_StatusTypeDef BSP_QSPI_AutoPolling(QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg, uint32_t Timeout)
Configure the QSPI Automatic Polling Mode in interrupt mode.
QSPI_StatusTypeDef BSP_QSPI_Receive(uint8_t *pData, uint32_t Timeout)
Receive an amount of data in interrupt mode.
QSPI_StatusTypeDef BSP_QSPI_Erase_Sector(uint32_t Sector)
Erases the specified sector of the QSPI memory.
QSPI_StatusTypeDef QSPI_WriteEnableVolat(void)
This function enable the write for Volatile Status Register only.
QSPI_StatusTypeDef QSPI_AutoPollingMemReady(uint32_t Timeout)
This function read the SR of the memory and wait the EOP.
QSPI_StatusTypeDef BSP_QSPI_Write(uint8_t *pData, uint32_t WriteAddr, uint32_t Size)
Writes an amount of data to the QSPI memory.
QSPI_StatusTypeDef QSPI_WriteEnable(void)
This function set Write Enable Latch bit and wait it is effective.
static QSPI_Info _FlashInfo
QSPI_StatusTypeDef QSPI_WriteDisable(void)
This function clear Write Enable Latch bit and wait it is effective.
QSPI_StatusTypeDef QSPI_ResetMemory(void)
This function reset the QSPI memory.
QSPI_StatusTypeDef BSP_QSPI_WriteStatus(uint32_t Reg)
Write status registers of the QSPI memory.
QSPI_StatusTypeDef BSP_QSPI_Erase_Block(uint32_t BlockAddress)
Erases the specified block of the QSPI memory.
QSPI_StatusTypeDef BSP_QSPI_GetStatus(void)
Reads current status (RDY/BUSY, WEL and SUS bits) of the QSPI memory.
uint8_t BSP_QSPI_SuspendErase(void)
This function suspends an ongoing erase command.
QSPI_HandleTypeDef * _hqspi
void QUADSPI_IRQHandler(void)
This function handles QUADSPI global interrupt.
void HAL_QSPI_TxCpltCallback(QSPI_HandleTypeDef *hqspi)
Tx Transfer completed callback.
void HAL_QSPI_StatusMatchCallback(QSPI_HandleTypeDef *hqspi)
Status Match callback.
void HAL_QSPI_CmdCpltCallback(QSPI_HandleTypeDef *hqspi)
Command completed callback.
void HAL_QSPI_RxCpltCallback(QSPI_HandleTypeDef *hqspi)
Rx Transfer completed callback.
void HAL_QSPI_ErrorCallback(QSPI_HandleTypeDef *hqspi)
Transfer Error callback.
Flash::QSPI_IT_EventFlag QSPI_IRQ_Flag
flash QSPI ETH452 AT256F161 header file
Interface STM32 hardware_hal STIMAV4 Header config.
__IO QSPI_StatusTypeDef State
uint32_t EraseBlockNumber
struct Flash::QSPI_IT_EventFlag::@2 flagBit