STM32
直播中

王玉兰

7年用户 1292经验值
私信 关注
[问答]

STM32F429使用Cube生成的驱动初始化后调用HAL_NAND_Read_ID( hnand1, id)后报异常是哪里的问题?

STM32F429使用Cube生成的驱动初始化后调用HAL_NAND_Read_ID( hnand1,  id);

  /* Send Read ID command sequence */   
  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_READID;
  *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;

处触发了
hard_fault。
异常信息
bus fault:
SCB_CFSR_BFSR:0x04 IMPRECISERR


请问这是什么原因


回帖(2)

刘思思

2024-4-3 15:16:11
从提示来看发生总线访问错误。具体你这里,注意下你的地址本身是否合法正确,再就是你访问的对象是否涉及地址对齐方面的问题。
举报

lique

2024-4-3 16:13:01
在使用Cube生成的驱动初始化后调用HAL_NAND_Read_ID时,触发了硬故障 (hard fault) 并显示异常信息“bus fault:SCB_CFSR_BFSR:0x04 IMPRECISERR"。这通常表示发生了总线错误导致的硬故障。

造成总线错误的原因可能是多种问题,包括但不限于以下几点:

1. NAND闪存设备没有正确连接到STM32F429芯片。请确保NAND芯片的物理连接正确,包括引脚接线和电源连接。

2. 驱动的配置或初始化有误。请检查使用Cube生成的驱动中的配置,确保正确初始化了NAND控制器和引脚。

具体解决方法包括:

1. 确认NAND闪存芯片的连接。查看硬件电路连接,并确保引脚连接正确、电源稳定。

2. 检查使用Cube生成的驱动中的配置。请确保NAND控制器和引脚的初始化配置正确,尤其是相关的引脚映射和时钟配置。

3. 使用调试器调试代码。设置断点并逐步跟踪执行代码,以查找导致总线错误的具体原因。

综上所述,报告的总线错误可能是由于NAND闪存设备连接或驱动配置有误引起的。您需要仔细检查这两方面,并使用调试器进行调试以确定问题的具体原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分