你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H750 QSPI FLASH 映射问题请教

[复制链接]
憨客鱼 提问时间:2021-10-31 09:00 / 未解决
我想用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);
}



收藏 评论5 发布时间:2021-10-31 09:00

举报

5个回答
STMCU-管管 回答时间:2021-11-1 13:45:10
最近分享了跟多STM32H735的经验分享,可以参考参考
憨客鱼 回答时间:2021-11-2 20:40:28

STMCU-管管 发表于 2021-11-1 13:45
最近分享了跟多STM32H735的经验分享,可以参考参考

麻烦给个连接,我学习一下啊

STMCU-管管 回答时间:2021-11-5 17:37:15

憨客鱼 发表于 2021-11-2 20:40
麻烦给个连接,我学习一下啊

链接在这里,查看

憨客鱼 回答时间:2021-11-6 15:56:48

STMCU-管管 发表于 2021-11-5 17:37
链接在这里,[查看](<a href="https://https://shequ.stmicroelectronics.cn/home.php?mod=space&amp;amp;uid=13573447">https://https://shequ.stmicroelectronics.cn/home.php?mod=space&amp;amp;uid=13573447</a> ...

[md]连接打不开啊

xmshao 回答时间:2021-11-24 12:03:15

感觉发生了非法访问导致硬错。

好好检查下配置,尤其注意地址方面被给错或越界了。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版