有没有办法关闭独立看门狗的作用

查看: 2588|回复: 6
关于进入停止模式和独立看门狗
主题帖子精华
新手上路, 积分 39, 距离下一级还需 11 积分
在线时间1 小时
当进入停止模式后,发现独立看门狗已经停止,因为没有见系统因为独立看门狗复位唤醒,而导致系统重新初始化的现象。不知道各位兄弟是否遇到过类似的问题。看手册确实说明独立看门狗开启后可以在停机模式下工作。是否因为配置独立看门狗的时钟的问题?
主题帖子精华
高级会员, 积分 614, 距离下一级还需 386 积分
在线时间0 小时
看看,路过!
STM32F3系列公司现有货供应!STM32F0,STM32F2,STM32F3,STM32F4&银洋电子专业一级代理http://www.&联系电话:021-&&淘宝网:http://y-
主题帖子精华
在线时间397 小时
回复【楼主位】hong60104:
---------------------------------
为什么要用独立看门狗唤醒停止模式?
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
金牌会员, 积分 1958, 距离下一级还需 1042 积分
在线时间206 小时
回复【3楼】正点原子:
---------------------------------
原子哥,我做的低功耗板子,要进入停止模式,5分钟后RTC唤醒。因长时间放到室外,相再加个看门狗,以防程序运行时死机。
问题是,在停止模式里怎么喂狗,还是不需要喂?
主题帖子精华
在线时间397 小时
回复【4楼】augustedward:
---------------------------------
这个没试过了,呵呵。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
初级会员, 积分 90, 距离下一级还需 110 积分
在线时间10 小时
我也遇到这样的问题,在停止模式下没办法喂狗,系统会被看门狗复位,而不是正常的唤醒
主题帖子精华
初级会员, 积分 50, 距离下一级还需 150 积分
在线时间2 小时
回复【3楼】正点原子:
---------------------------------
原子哥,我做的低功耗板子,要进入停止模式,5分 ...
请问层主有没有实现在停止模式下喂狗,休眠模式下能不能使用看门狗呢,如何使用,还请指教。
Powered by查看: 1834|回复: 4
窗口看门狗和独立看门狗的区别
主题帖子精华
初级会员, 积分 90, 距离下一级还需 110 积分
在线时间4 小时
最新做东西,发现老是死机,于是研究了看门狗,看了论坛中好多帖,收获了不少
想借此平台总结下
看门狗和普通的单片机一样,计数器从 0xFFF 递减计数,到0产生复位,其中计数时间可设置!也就是说在该时间内,喂狗一次,计数器又开始从 0xFFF 递减计数,不会产生复位,原理很简单。可在主函数,中断中喂狗。一旦单片机死机不执行喂狗时,就复位。
窗口看门狗是在计数器从0x7f---上窗口---下窗口——ox3f。其中0x7f---上窗口即使喂狗也无效,而上窗口---下窗口——ox3f间喂狗有效!当计时器执行到下窗口时(0x4f)会产生中断。到0x3f,如果仍然没喂狗则会复位!
1)大致简介这2只狗,窗口看门狗得喂狗时间可控制在一个范围里,同时假如程序死机,可在中断里保存重要数值在flash中(但要快在复位前),到ox3f复位重启!
独立看门狗如果死机在喂狗那条语句,这程序不会复位,这样是不行的。而窗口看门狗的有效喂狗时间可控制,这样的情况几乎为0.
那是不是独立看门狗就不如窗口看门狗了呢????????那也不是
独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然 有效。而窗口看门狗是用的pclk1,这不是这样啦!!!
看来俩条狗一起用吧!!!安全大大提高啦!!
由于水平有限,可能哪有不对的地方,望小伙伴多多指教,完善!!!!谢谢
主题帖子精华
在线时间397 小时
谢谢分享。。。。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间4 小时
窗口看门狗怎么去喂狗?还是说只要设置了初始化和中断就可以了吗?没有触发语句?
年轻不要吧钱看的太重要。
主题帖子精华
新手上路, 积分 49, 距离下一级还需 1 积分
在线时间4 小时
主题帖子精华
新手上路, 积分 38, 距离下一级还需 12 积分
在线时间4 小时
Powered bySTM32独立看门狗程序
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
STM32独立看门狗程序
&头文件及完整例程下载:
程序分析:
#include &led.h&
#include &delay.h&
#include &key.h&
#include &sys.h&
#include &usart.h&
#include &wdg.h&
//STM32开发板实验6
//独立看门狗实验 &
&int main(void)
delay_init();
//延时函数初始化
NVIC_Configuration();
//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
// uart_init(9600);
//串口初始化为9600
& LED_Init();
//初始化与LED连接的硬件接口
KEY_Init(); & & & & &//按键初始化 &
delay_ms(500); &
//让人看得到灭
IWDG_Init(4,625); & &//与分频数为64,重载值为625,溢出时间为1s
//点亮LED0
if(KEY_Scan(0)==KEY_UP)
IWDG_Feed();//如果WK_UP按下,则喂狗
delay_ms(10);
重点分析 :IWDG_Init(4,625);&&&
void IWDG_Init(u8 prer,u16 rlr)&
& IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); &//使能对寄存器IWDG_PR和IWDG_RLR的写操作
IWDG_SetPrescaler(prer); &//设置IWDG预分频值:设置IWDG预分频值为64
IWDG_SetReload(rlr); &//设置IWDG重装载值
IWDG_ReloadCounter(); &//按照IWDG重装载寄存器的值重装载IWDG计数器
IWDG_Enable(); &//使能IWDG
喂狗程序 :IWDG_ReloadCounter();
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网
, All Rights Reserved查看: 1000|回复: 2
独立看门狗,怎么不复位?
主题帖子精华
高级会员, 积分 543, 距离下一级还需 457 积分
在线时间36 小时
[C] 纯文本查看 复制代码代码如下,不喂狗,则应该复位,为什么不复位?
[C] 纯文本查看 复制代码#include\"stm32f10x.h\"
void delay_init()
SysTick-&LOAD=0x01;
//自动重载
SysTick-&VAL=0xFFFFFE;//自动重载值
SysTick-&CTRL=0x05;
//选择内部时钟,不产生中断,并使能定时器
void delay_ms(int x)
u32 temp=0;
delay_init();
while(x*72000!=temp)
if((SysTick-&CTRL&&16)==1)
SysTick-&CTRL=0x00;
重新配置系统时钟,选择外部8MHZ时钟,9倍频
AHB=Div1,APB1=Div2,APB2=Div1
void Select_HSEforSysclk()
RCC_DeInit();
//将外设RCC寄存器重新设置为缺省值
RCC_HSEConfig(RCC_HSE_ON);
//选择外部高速时钟
while(RCC_WaitForHSEStartUp()!=SUCCESS);//等待外部高速时钟稳定
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//设置AHB时钟为系统时钟
RCC_PCLK1Config(RCC_SYSCLK_Div2);
//设置APB1时钟为=Div2
RCC_PCLK2Config(RCC_SYSCLK_Div1);
//设置APB2时钟为=Div1;
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//设置HSE为PLL的输入,选择9倍频
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)!=SET);//等待PLL就绪
FLASH_SetLatency(FLASH_Latency_2);
//FLASH延时两个周期
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置PLL作为系统时钟
while(RCC_GetSYSCLKSource()!=0x08); //判断PLL是否为系统时钟
void iwdg_init()
溢出时间:Tout=((4*2^prer)*rlr)/40
其中:prer为看门狗时钟预分频值
rlr为看门狗的重装载值
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能对预分频值和重装载值的写操作
IWDG_SetPrescaler(IWDG_Prescaler_4);
//设置与分频值
IWDG_SetReload(625);//设置重装载值
IWDG_ReloadCounter();//重装载计数器
IWDG_Enable();//使能独立看门狗
int main(void)
GPIO_InitTypeDef
GPIO_InitS//定义结构体类型的变量,必须放在最前面
Select_HSEforSysclk();
//调用时钟初始化函数
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);//使能复用IO时钟,PA,PD端口时钟
RCC_LSICmd(ENABLE);//使能LSI
//RCC-&CSR=0x01;//使能LSI
while((RCC-&CSR&&1)&0x01==0); //等待LSI稳定
RCC-&CSR|=1&&29;
//使能独立看门狗复位
设置PA8为通用推挽输出,速度为50MHZ
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
设置PD2为通用推挽输出,速度为50MHZ
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
//PA0,默认下拉;
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//禁止JTAG,开启SWD,PA15JTDI
设置PA0为下拉输入模式
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
GPIO_Init(GPIOA,&GPIO_InitStructure);
//delay_ms(100);//延时500ms
iwdg_init();
if((GPIOA-&IDR)!=0x01)//若WK_UP被按下,则喂狗
IWDG-&KR=0xAAAA;
delay_ms(100);
[C] 纯文本查看 复制代码
主题帖子精华
在线时间397 小时
楼主直接下载我们例程测试下吧。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
初级会员, 积分 104, 距离下一级还需 96 积分
在线时间0 小时
你的按键检测程序很特别。
Powered by}

我要回帖

更多关于 stm32独立看门狗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信