|
我想用QSPI FLASH 作OTA,选用的是W25Q64,现在对QSPI的读写都正常,但是把QSPI 映射成内存模式,一对 0x9000000UL 进行读,就进入HardFault_Handler, 下面是我配置映射的代码,哪位大侠能帮看看有什么问题没有我芯片是用的STM32H750VB 用的STM32CUBE static unsigned int QSPI_EnableMemoryMappedMode(QSPI_HandleTypeDef *QSPIHandle) { QSPI_CommandTypeDef s_command; QSPI_MemoryMappedTypeDef s_mem_mapped_cfg; // Configure the command for the read instruction s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE; s_command.Instruction = QUAD_INOUT_FAST_READ_CMD; s_command.Address = 0; s_command.AddressMode = QSPI_ADDRESS_4_LINES; s_command.AddressSize = QSPI_ADDRESS_24_BITS; s_command.AlternateBytes = 0x00; s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; s_command.AlternateBytesSize = QSPI_ALTERNATE_BYTES_8_BITS; s_command.DataMode = QSPI_DATA_4_LINES; s_command.NbData = 1; //??????? s_command.DummyCycles = 6; s_command.DdrMode = QSPI_DDR_MODE_DISABLE; s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY; s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; // Configure the memory mapped mode s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE; s_mem_mapped_cfg.TimeOutPeriod = 0; return HAL_QSPI_MemoryMapped(QSPIHandle, &s_command, &s_mem_mapped_cfg); } */ static unsigned int QSPI_EnableMemoryMappedMode(QSPI_HandleTypeDef *QSPIHandle) { QSPI_CommandTypeDef s_command; QSPI_MemoryMappedTypeDef s_mem_mapped_cfg; // Configure the command for the read instruction s_command.InstructionMode = QSPI_INSTRUCTION_4_LINES; s_command.Instruction = QUAD_INOUT_FAST_READ_CMD; s_command.Address = 0; s_command.AddressMode = QSPI_ADDRESS_4_LINES; s_command.AddressSize = QSPI_ADDRESS_32_BITS; // 24 32 都试过 s_command.AlternateBytes = 0x00; s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; s_command.AlternateBytesSize = QSPI_ALTERNATE_BYTES_8_BITS; s_command.DataMode = QSPI_DATA_4_LINES; s_command.NbData = 1; //??????? s_command.DummyCycles = 6; s_command.DdrMode = QSPI_DDR_MODE_DISABLE; s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY; s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; // Configure the memory mapped mode s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE; s_mem_mapped_cfg.TimeOutPeriod = 0; return HAL_QSPI_MemoryMapped(QSPIHandle, &s_command, &s_mem_mapped_cfg); } |
STM32H7中FMC
STM32H7上中FMC上的NAND FLASH问题
STM32的FMC_D数据线,FMC_A地址线,没有按CubeMX的标准映射连接,能否让SDRAM正常工作
STM32H7的FMC数据线和SDRAM的数据线交叉连接,地址线也交叉连接,并不是D0对D0、A0对A0这样对应,SDRAM能正常工作吗?
stm32h7 定时器输出比较模式+dma,生成脉冲异常
STM32H7中FDCAN,数据正确,ID号错误
STM32H7的FDCAN
STM32H747XIH6 CM7正常运行 CM4不能正运行
【经验分享】STM32H7 DMA+UART不定长接收实战:解决缓存溢出与数据错位问题
STM32H725的LSE不起振
微信公众号
手机版
麻烦给个连接,我学习一下啊
链接在这里,查看
[md]连接打不开啊
感觉发生了非法访问导致硬错。
好好检查下配置,尤其注意地址方面被给错或越界了。