当前位置: 移动技术网 > 科技>操作系统>windows > STM32使用IWDG死机

STM32使用IWDG死机

2020年08月12日  | 移动技术网科技  | 我要评论
STM32使用IWDG死机嗯,不知道怎么说,stm32的看门狗死机了,下面是仿真时报错信息:The processor has escalated a configurable-priority exception to HardFault.An instruction executed with an invalid EPSR.T or EPSR.IT field (CFSR.INVSTATE).Exception occured at PC = 0x0, LR = 0x0现象是有时会死机有时又

STM32使用IWDG死机

嗯,不知道怎么说,stm32的看门狗死机了,下面是仿真时报错信息:
The processor has escalated a configurable-priority exception to HardFault.
An instruction executed with an invalid EPSR.T or EPSR.IT field (CFSR.INVSTATE).
Exception occured at PC = 0x0, LR = 0x0

现象是有时会死机有时又确实重启了;

跑的FreeRTOS,芯片是STM32F205ZE;看门狗代码配置如下:

static void MX_IWDG_Init(void)
{

  /* USER CODE BEGIN IWDG_Init 0 */

  /* USER CODE END IWDG_Init 0 */

  /* USER CODE BEGIN IWDG_Init 1 */

  /* USER CODE END IWDG_Init 1 */
  hiwdg.Instance = IWDG;
  hiwdg.Init.Prescaler = IWDG_PRESCALER_4;
  hiwdg.Init.Reload = 4095;
  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN IWDG_Init 2 */

  /* USER CODE END IWDG_Init 2 */

}

然后延长看门狗时间,就是把预分频改为IWDG_PRESCALER_32,看门狗不去重启,死机问题自然也不会发生了,,只是这个死机的原因任然不得而知@STM32官方

PS:有遇到这个问题的小伙伴吗?

后续:

  • 死机的原因不是看门狗,而是所有复位操作都会导致死机,具体原因也不清楚,猜测是在晶振和复位引脚这一块,可能是复位信号与晶振引脚之间没清理干净,复位的时候让晶振停振了。因为我就把板子的晶振引脚和复位引脚用镊子戳了戳就莫名奇妙的好了。。。

  • 要不是焊了三块样机,我估计要找好几天软件的bug。。。所以说样机焊一块是不够的,,不然某个奇葩问题可能会让你怀疑人生;

本文地址:https://blog.csdn.net/qq_18628523/article/details/107929858

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网