出现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++;求大神解释下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
taizonglai
1楼-- · 2019-08-17 06:43
 精彩回答 2  元偷偷看……
xuande
2楼-- · 2019-08-17 10:20

到底是哪个变量引起的?先查清楚。

szyh1120
3楼-- · 2019-08-17 14:08
只保留任何一个变量,异常情况都有hardfault,是否跟硬件,就是板子有关?例如焊接短路。
无休
4楼-- · 2019-08-17 17:33
程序贴上来
szyh1120
5楼-- · 2019-08-17 20:52
跟程序无关,硬件焊错晶振了,超频运行的结果。

一周热门 更多>