出现HardFault_Handler的错误,求大神解释

2019-08-17 00:47发布

一般的帖子,关于HardFault_Handler的错误很多人归类于堆栈溢出或者数值越界。我现在遇到的有点奇葩.  我的程序很简单,就在主程序里面翻滚一个IO,同时打开一个定时器中断,程序在大容量的IC里面运行没有问题,但是在中容量的IC运行就出现HardFault_Handler的错误,即使都是同一个工程,所选的IC都是STM32F103C8
中断服务程序如下://****************************************************************************//定时器2中断服务程序//****************************************************************************void TIM2_IRQHandler(void)   //TIM3中断{   if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否   {
     TIM_ClearITPendingBit(TIM2, TIM_IT_Update  );  //清除TIMx更新中断标志  5ms            //        GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_8)));
        WindRxTime++;        BlueRxTime++;        LedRxTime++;        NoiseRxTime++;       TimeMs++;     }}
如果将中断的变量加1的代码屏蔽,程序也正常,感觉没有道理,难道变量溢出在中小容量的IC里面有限制?如果这样如何用?这些变量目前都没有使用。即这样屏蔽:                        //WindRxTime++;                        //BlueRxTime++;                        //LedRxTime++;                        //NoiseRxTime++;                        //TimeMs++;求大神解释下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。