封装发送命令的函数(重点)
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] 向SPI Flash发送指令
- * @param instruction —— 要发送的指令
- * @param address —— 要发送的地址
- * @param dummyCycles —— 空指令周期数
- * @param instructionMode —— 指令发送模式
- * @param addressMode —— 地址发送模式
- * @param addressSize —— 地址大小
- * @param dataMode —— 数据发送模式
- * @retval 成功返回HAL_OK
- */
- HAL_StatusTypeDef QSPI_Send_Command(uint32_t instruction,
- uint32_t address,
- uint32_t dummyCycles,
- uint32_t instructionMode,
- uint32_t addressMode,
- uint32_t addressSize,
- uint32_t dataMode)
- {
- QSPI_CommandTypeDef cmd;
- cmd.Instruction = instruction; //指令
- cmd.Address = address; //地址
- cmd.DummyCycles = dummyCycles; //设置空指令周期数
- cmd.InstructionMode = instructionMode; //指令模式
- cmd.AddressMode = addressMode; //地址模式
- cmd.AddressSize = addressSize; //地址长度
- cmd.DataMode = dataMode; //数据模式
- cmd.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; //每次都发送指令
- cmd.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; //无交替字节
- cmd.DdrMode = QSPI_DDR_MODE_DISABLE; //关闭DDR模式
- cmd.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
- return HAL_QSPI_Command(&hqspi, &cmd, 5000);
- }
|