SPI的读不出数据,且进入HardFault_Handler(void)这个中断
现在我的STM32通过SPI读取W25Q16的JEDEC ID是正确,但是从首次地址0X000000,用0X03读指令却读不出数据,程序直接进入了HardFault_Handler(void)这个中断,想知道是为什么?本帖结贴了!!!!!
这个问题主要是我的读取函数里有一个结构体指针参数,我在定以这个结构体指针的时候,没有给他赋初值。
Flash_Read_Data(HeadAddr,sizeof(LoadSaveData),(u8*)LoadSaveData);就是“(u8*)LoadSaveData”这个结构体指针,我没有给它赋初值。 应该是其他中断引起的吧或者时序上的问题 当程序跑飞的时候才会进入HardFault_Handler() 尝试追踪一下是什么原因进入的 HardFault(看一下 Cortex-M 核心 SCB 里面的数据)然后再来确定问题出在哪里。 检测标志位,查看标准库,函数,定义好接收位置 根据hardfault的状态寄存器判断下是什么导致的,对于定位问题应该会有帮助 andeyqi 发表于 2018-4-15 23:36
根据hardfault的状态寄存器判断下是什么导致的,对于定位问题应该会有帮助
好的,谢谢,我试试 watercici 发表于 2018-4-16 08:26
好的,谢谢,我试试
http://github.com/armink/CmBacktrace.git这个开源的软件 能解析hardfault 可以加入到工程里 你先从hardfault看看是什么问题...我觉得是指针问题比较大.. butterflyspring 发表于 2018-4-16 10:50
你先从hardfault看看是什么问题...我觉得是指针问题比较大..
谢谢,我刚下载了这个,帮助很大,而且我也知道我的问题出在哪里了。问题是我只定以了结构体指针,没有给这个指针赋初值。谢谢! andeyqi 发表于 2018-4-16 09:17
http://github.com/armink/CmBacktrace.git这个开源的软件 能解析hardfault 可以加入到工程里 ...
给常感谢,资料很棒,我学习一下
页:
[1]
2