历史上的今天
今天是:2025年05月14日(星期三)
2018年05月14日 | STM32F030 WWDG使用结论
2018-05-14 来源:eefocus
使用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);
}
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 在面向智能手机应用的创新型 IC 产品取得初步成功之后,Cirrus Logic公司又将标准产品线拓展至智能手机和移动消费电子应用。 CS42L73 是一款专为智能手机设计的高质量、 ...… 查看全部问答> |
|
在百度以及alldatasheet.com以及DIGIKEY,以及google,yahoo上都没有找到这个芯片的手册,望哪位能帮忙提供一下,最好能有个外围典型电路,这个是个蓝牙芯片,BGA封装,一般山寨手机用的多。先谢了 … 查看全部问答> |
|
比如我用2个硬盘建个RAID 0,现在我删除RAID 0配置,硬盘里的数据还在吗? 又比如我用2个硬盘建个RAID 0,我换掉其中一个硬盘,重建RAID 0,原硬盘的数据还在吗?… 查看全部问答> |
|
我的芯片明明是STM32F103VET6,可是怎么弄PLL最高输出44M,倍数再高一点就完蛋,为了RCC前前后后弄了差不多2天时间 ...… 查看全部问答> |
|
赛灵思最新推出的业界领先的 28nm 7系列FPGA 相对前几代FPGA 系列而言,极大地丰富了集成模拟子系统的功能。7 系列的模拟子系统被命名为 XADC,内置两个独立的 12 位 1 MSPS 模数转换器 (ADC) 和一个 17 通道模拟多路复用器前端。通过将 XADC 与 FP ...… 查看全部问答> |
|
小弟初学STM32F以前玩过51单片机,现在搞这个对使用ST的库相对还不是很适应,按照教程创建了一个MDK工程,添加了V3.5的库,main里做了GPIO测试没有问题,但是使用UART却出了问题,我使用的是STM32F107VCT6,使用它的USART1端口重新映射到了PB6,PB7 ...… 查看全部问答> |




