watercici 发表于 2018-4-14 22:28:12

SPI的读不出数据,且进入HardFault_Handler(void)这个中断

现在我的STM32通过SPI读取W25Q16的JEDEC ID是正确,但是从首次地址0X000000,用0X03读指令却读不出数据,程序直接进入了HardFault_Handler(void)这个中断,想知道是为什么?

watercici 发表于 2018-4-16 11:20:22

本帖结贴了!!!!!
这个问题主要是我的读取函数里有一个结构体指针参数,我在定以这个结构体指针的时候,没有给他赋初值。
Flash_Read_Data(HeadAddr,sizeof(LoadSaveData),(u8*)LoadSaveData);就是“(u8*)LoadSaveData”这个结构体指针,我没有给它赋初值。

Cortexxx 发表于 2018-4-15 00:05:59

应该是其他中断引起的吧或者时序上的问题   当程序跑飞的时候才会进入HardFault_Handler()

maxtch 发表于 2018-4-15 01:22:24

尝试追踪一下是什么原因进入的 HardFault(看一下 Cortex-M 核心 SCB 里面的数据)然后再来确定问题出在哪里。

feixiang20 发表于 2018-4-15 05:22:34

检测标志位,查看标准库,函数,定义好接收位置

andeyqi 发表于 2018-4-15 23:36:46

根据hardfault的状态寄存器判断下是什么导致的,对于定位问题应该会有帮助

watercici 发表于 2018-4-16 08:26:59

andeyqi 发表于 2018-4-15 23:36
根据hardfault的状态寄存器判断下是什么导致的,对于定位问题应该会有帮助

好的,谢谢,我试试

andeyqi 发表于 2018-4-16 09:17:37

watercici 发表于 2018-4-16 08:26
好的,谢谢,我试试

http://github.com/armink/CmBacktrace.git这个开源的软件 能解析hardfault 可以加入到工程里

butterflyspring 发表于 2018-4-16 10:50:00

你先从hardfault看看是什么问题...我觉得是指针问题比较大..

watercici 发表于 2018-4-16 11:16:55

butterflyspring 发表于 2018-4-16 10:50
你先从hardfault看看是什么问题...我觉得是指针问题比较大..

谢谢,我刚下载了这个,帮助很大,而且我也知道我的问题出在哪里了。问题是我只定以了结构体指针,没有给这个指针赋初值。谢谢!

watercici 发表于 2018-4-16 11:18:17

andeyqi 发表于 2018-4-16 09:17
http://github.com/armink/CmBacktrace.git这个开源的软件 能解析hardfault 可以加入到工程里 ...

给常感谢,资料很棒,我学习一下
页: [1] 2
查看完整版本: SPI的读不出数据,且进入HardFault_Handler(void)这个中断