STM32+nand flash调试程序进入HardFault_Handler()

2019-03-23 18:12发布

本帖最后由 qiwan 于 2015-3-10 19:59 编辑

调试STM32读写nand flash K9F1G08U0D的程序,程序实现的功能是对nand flash的第一块的前两页
写数据,且从第一页的第一个字节地址开始写,写完之后,对两页的数据进行读取,若读取得到的
数据之前写入的数据一致,则执行其他操作。

通过函数 FSMC_NAND_WriteSmallPage(TxBuffer, WriteReadAddr, PageNumber)对nand flash写;
然后通过函数FSMC_NAND_ReadSmallPage (RxBuffer, WriteReadAddr, PageNumber)对之前写的两页
进行读。
调试中发现,当程序执行到语句:
status = FSMC_NAND_ReadSmallPage (RxBuffer, WriteReadAddr, PageNumber);
时,便会进入到HardFault_Handler()函数中,不断地执行while(1)中的空语句。
如图1和12所示。



通过网上提供的“解决stm32进入HardFault_Handler的定位方法,将错误定位到了语句:

status = FSMC_NAND_ReadStatus();

如图123所示:



但还是找不出问题出在哪里。

先将程序附件呈上,希望有机会讨论一下,先谢过!



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。