你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> STM32—IWDG独立看门狗的使用

STM32—IWDG独立看门狗的使用

关键字:IWDG STM 独立 作者: 来源: 发布时间:2019-07-31  浏览:0

STM32---IWDG独立看门狗的使用

独立看门狗(IWDG)由专用的40kHz的低速时钟驱动,

即使主时钟发生故障它也仍然有效。

窗口看门狗由从APB1时钟分频后得到的时钟驱动,

通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

IWDG最适合应用于那些需要看门狗作为一个在主程序之外,

能够完全独立工作,并且对时间精度要求较低的场合。

WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。

IWDG主要性能

●自由运行的递减计数器

●时钟由独立的RC振荡器提供(可在停止和待机模式下工作)

●看门狗被激活后,则在计数器计数至0x000时产生复位

在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;

此时计数器开始从其复位值0xFFF递减计数。

当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。

无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,

IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位 。

如果用户在选择字节中启用了“硬件看门狗“功能,

在系统上电复位后,看门狗会自动开始运行;

如果在计数器计数结束前,若软件没有向键寄存器写入相应的值,

则系统会产生复位寄存器访问保护

IWDG_PR和IWDG_RLR寄存器具有写保护功能。

要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。

以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。

重装载操作(即写入0xAAAA)也会启动写保护功能。

状态寄存器指示预分频值和递减计数器是否正在被更新。

//启动独立看门狗

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //访问之前要首先使能寄存器写

IWDG_SetPrescaler(IWDG_Prescaler_64);//64分频 一个周期1.6ms

IWDG_SetReload(800);//最长12位 [0,4096] 800*1.6=1.28S

/* Reload IWDG counter */

IWDG_ReloadCounter();

IWDG_Enable();// Enable IWDG (the LSI oscillator will be enabled by hardware)

因为独立看门狗使用的是LSI,所以最好程序启动的时候,使时钟源稳定:

/* LSI的启动*/

RCC_LSICmd(ENABLE);//打开LSI

while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY)==RESET);//等待直到LSI稳定

扩展阅读:51单片机看门狗电路

编辑:admin  最后修改时间:2019-07-31

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4