您现在的位置: 主页 > MCU > 单片机技术应用 > STM32F030 WWDG使用结论 -
本文所属标签:
为本文创立个标签吧:

STM32F030 WWDG使用结论 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
使用STM32F030的WWDG,发现其在STOP下面跟STM8S的休眠模式的情况一样,不会对MCU进行复位.贴上看门狗代码:/*****************************************************************************************

 

本文引用地址: http://www.21ic.com/app/mcu/201804/764234.htm

使用STM32F030的WWDG,发现其在STOP下面跟STM8S的休眠模式的情况一样,不会对MCU进行复位.

贴上看门狗代码:

/***************************************************************************************

****************************************************************************************

* FILE : wdog_drv.c

* Description :

*

* Copyright (c) 2015 by LAN. All Rights Reserved.

*

* History:

* Version Name Date Description

0.1 蓝曙光 2015/01/28 Initial Version

 

****************************************************************************************

****************************************************************************************/

 

#include "wdog_drv.h"

 

#define WWDG_Prescaler_8 ((uint32_t)0x00000180)

#define CFR_WDGTB_MASK ((uint32_t)0xFFFFFE7F)

#define RCC_APB1ENR_WWDGEN ((uint32_t)0x00000800) /*!< Window Watchdog clock enable */

 

/*==================================================================

* Function : Wdog_Init

* Description : 看门狗初始化

* Input Para :

* Output Para :

* Return Value:

==================================================================*/

void Wdog_Init(void)

{

Wdog_Start();

WWDG->CFR |= 0x7F; //窗口看门狗的上窗口,窗口值必须在0x3F以上,但必须小于计数值小于0x7F

 

WWDG->CR = 0x7F; //看门狗计数值

 

Wdog_Feed(0);

}

 

 

 

/*==================================================================

* Function : Wdog_Start

* Description : 启动开门狗

* Input Para :

* Output Para :

* Return Value:

==================================================================*/

void Wdog_Start(void)

{

RCC->APB1ENR |= RCC_APB1ENR_WWDGEN;

//设置分频时钟

WWDG->CFR = (WWDG->CFR & CFR_WDGTB_MASK) | WWDG_Prescaler_8;

 

WWDG->CR |= 0x80; //使能窗口看门狗

}

 

/*==================================================================

* Function : Wdog_SetReload

* Description : 重新设置频率

* Input Para :

* Output Para :

* Return Value:

==================================================================*/

void Wdog_SetReload(u8 uTime)

{

 

}

 

/*==================================================================

* Function : Wdog_Feed

* Description : 喂狗

* Input Para :

* Output Para :

* Return Value:

==================================================================*/

void Wdog_Feed(u8 uTime)

{

if ((WWDG->CR & 0x7F) < WWDG->CFR)//小于窗口值才能喂狗

{

WWDG->CR |= 0x7F; //重新喂狗

}

}

 

 

 

/*==================================================================

* Function : Wdog_ResetChip

* Description : 复位芯片

* Input Para :

* Output Para :

* Return Value:

==================================================================*/

void Wdog_ResetChip(void)

{

while ((WWDG->CR & 0x7F) >= WWDG->CFR)

{//等待进入到喂狗窗口

}

WWDG->CR &= 0x40; //喂最小复位

while(1);

}

 

 



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > STM32F030 WWDG使用结论 -
 

"STM32F030 WWDG使用结论 -"的相关文章

网站地图

围观()