|
本帖最后由 efuntech 于 2021-8-13 11:50 编辑
最近一直在学习H750 接QSPI flash 进行外扩Flash进行开发的问题
目前遇到一个问题:H750VB通过QSPI接口接W25Q128,读取W25Q128的ID,读写操作都正确。但是通过QSPI_MemoryMapped进行XIP映射的时候,从0x90000000读到的数据不对,都是88,
- void QSPI_MemoryMapped(void)
- {
- QSPI_CommandTypeDef s_command = {0};
- QSPI_MemoryMappedTypeDef s_mem_mapped_cfg = {0};
- /* 基本配置 */
- s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE; /* 1线方式发送指令 */
- s_command.AddressSize = QSPI_ADDRESS_32_BITS; /* 32位地址 */
- s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; /* 无交替字节 */
- s_command.DdrMode = QSPI_DDR_MODE_DISABLE; /* W25Q256JV不支持DDR */
- s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY; /* DDR模式,数据输出延迟 */
- s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; /* 每次传输都发指令 */
-
- /* 全部采用4线 */
- s_command.Instruction = QUAD_INOUT_FAST_READ_4_BYTE_ADDR_CMD; /* 快速读取命令 */
- s_command.AddressMode = QSPI_ADDRESS_4_LINES; /* 4个地址线 */
- s_command.DataMode = QSPI_DATA_4_LINES; /* 4个数据线 */
- s_command.DummyCycles = 6; /* 空周期 */
- /* 关闭溢出计数 */
- s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;
- s_mem_mapped_cfg.TimeOutPeriod = 0;
- if (HAL_QSPI_MemoryMapped(&QSPI_Handler, &s_command, &s_mem_mapped_cfg) != HAL_OK)
- {
- ////Error_Handler(__FILE__, __LINE__);
- }
- }
复制代码
请问H750VB是否支持XIP映射?进行XIP映射的参数是否正确?请弄过的帮忙看看? 多谢了
|
|