欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F103V IWDG 独立看门狗操作

发布时间:2025/3/21 编程问答 74 豆豆
生活随笔 收集整理的这篇文章主要介绍了 STM32F103V IWDG 独立看门狗操作 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近编写一个程序,因为需要考虑到可靠性,所以需要在程序了添加看门狗功能。查了下STM32的相关资料,于是利用下库文件来实现IWDG独立看门狗操作。首先需要调用库文件 #include "stm32f10x_iwdg.h"

再配置下看门狗相关参数

//独立看门狗IWDG设置
void WatchDog_int(void)// 独立看门狗IWDG设置
{
     /* Enable write access to IWDG_PR and IWDG_RLR registers */
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
   /* IWDG counter clock: 32KHz(LSI) / 32 = 1KHz */
  IWDG_SetPrescaler(IWDG_Prescaler_32); //独立看门狗预分频为32

   /* Set counter reload value to 1000 */
  IWDG_SetReload(1000);//设置IWDG重装载值 范围为 0~0x0FFF;

    /* Reload IWDG counter */
  IWDG_ReloadCounter();//按照重装载的寄存器的值来重装载IWDG计数器

    /* Enable IWDG (the LSI oscillator will be enabled by hardware) */
  IWDG_Enable();//使能 独立看门狗
}

 

 

 

在主程序中实现喂狗的程序如下:

///主程序//
int main(void)
{
   RCC_Configuration(); //时钟配置
   NVIC_Configuration();//中断配置
   GPIO_Configuration();//GPIO配置

   WatchDog_int();// 独立看门狗IWDG设置
  /* 检查是否看门狗复位*/
  if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
  { 
    printf("WatchDog Reset\r\n"); 
    speakertest();
    RCC_ClearFlag();//清除标志位
  }
  else
  {;}

 }

 

while(1)

{

//正常运行的程序

IWDG_ReloadCounter();//喂狗

}

总结

以上是生活随笔为你收集整理的STM32F103V IWDG 独立看门狗操作的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。