日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 使用STM32F030的WWDG,發(fā)現(xiàn)其在STOP下面跟STM8S的休眠模式的情況一樣,不會對MCU進(jìn)行復(fù)位.貼上看門狗代碼:/*****************************************************************************************

 

使用STM32F030的WWDG,發(fā)現(xiàn)其在STOP下面跟STM8S的休眠模式的情況一樣,不會對MCU進(jìn)行復(fù)位.

貼上看門狗代碼:

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

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

* FILE : wdog_drv.c

* Description :

*

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

*

* History:

* Version Name Date Description

0.1 藍(lán)曙光 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以上,但必須小于計數(shù)值小于0x7F

 

WWDG->CR = 0x7F; //看門狗計數(shù)值

 

Wdog_Feed(0);

}

 

 

 

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

* Function : Wdog_Start

* Description : 啟動開門狗

* Input Para :

* Output Para :

* Return Value:

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

void Wdog_Start(void)

{

RCC->APB1ENR |= RCC_APB1ENR_WWDGEN;

//設(shè)置分頻時鐘

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

 

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

}

 

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

* Function : Wdog_SetReload

* Description : 重新設(shè)置頻率

* 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 : 復(fù)位芯片

* Input Para :

* Output Para :

* Return Value:

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

void Wdog_ResetChip(void)

{

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

{//等待進(jìn)入到喂狗窗口

}

WWDG->CR &= 0x40; //喂最小復(fù)位

while(1);

}

 

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉