您的位置 首页 5G

STM32—IWDG独立看门狗的运用

独立看门狗(IWDG)由专用的40kHz的低速时钟驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配…

独立看门狗(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安稳

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/254886.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部