mcuyangyifan 发表于 2015-10-14 14:33:20

STM32F3 HardFault_Handler



uint32_t MAX35101UpFirstReadDoubleWord(char StartingAddress,uint32_t *Result)
{
      uint16_t dataRx1,dataRx2;
      StartingAddress |= 0x80;
      MAX35101UpFirstCSLow;
      SPI2ExchangeData(StartingAddress);
      dataRx1 = SPIReadWord(&dataRx1);
      dataRx2 = SPIReadWord(&dataRx2);
      MAX35101UpFirstCSHigh;
      *Result =(dataRx2 + (uint32_t)(dataRx1 << 16));
      return *Result;
}
       执行这个函数的时候进入HardFault_Handler死循环,求助怎么处理?函数功能是从某个芯片中读取两个字,网上都说是接收缓冲区小了,请问各位怎么处理啊?

发表于 2015-10-14 14:38:18

单步走看看哪句导致数据溢出了。

creep 发表于 2015-10-14 14:44:18

有可能传进来的指针Result的地址不可写导致了fault。
具体方法可参考:如何找到导致程序出现HardFault的代码

johnsonz99 发表于 2015-10-15 09:55:46

学习了..........
页: [1]
查看完整版本: STM32F3 HardFault_Handler