仿造固件库写函数,为何程序会跳进HardFault_Handler(void)

2019-10-12 13:35发布

void W25Q64_Cmd(FunctionalState NewState)
{
assert_param(IS_FUNCTIONAL_STATE(NewState));

if (NewState != DISABLE)
{
/* Enable the W25Q64 */
W25Q64_Cmd(ENABLE);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
W25Q64_Cmd(DISABLE);
}
else
{
/* Disable the W25Q64 */
W25Q64_Cmd(ENABLE);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
W25Q64_Cmd(DISABLE);
}
}
就这一段代码,调试的时候发现会被跳进HardFault_Handler(void)。这一段可以说是在固件库中的SPI_Cmd()中复制的,前面SPI_Cmd()调用没事,到这个函数调用就被跳进HardFault_Handler(void)了。
stm32f10x_conf.h中的USE_FULL_ASSERT已经被注释掉.
初步猜测是传入的参数 ENABLE的锅
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。