您的位置 首页 传感器

STM32F103V IWDG 独立看门狗操作

最近编写一个程序,因为需要考虑到可靠性,所以需要在程序了添加看门狗功能。查了下STM32的相关资料,于是利用下库文件来实现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();//喂狗

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/267126.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部