您的位置 首页 开关

STM32F10x 学习笔记7独立看门狗IWDG 模块

按照STM32参考手册的说法:独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗…

依照STM32参考手册的说法:“独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即便主时钟发生毛病它也依然有用。IWDG最适合应用于那些需求看门狗作为一个在主程序之外,能够彻底独立作业,而且对时刻精度要求较低的场合。WWDG最适合那些要求看门狗在准确计时窗口起作用的应用程序。”

简略的说,STM32中的IWDG其中心便是一个12bits的向下递减的计数器,当计数器计数到零时就会触发体系复位。因而,要在每次计数到零之前将其复位到一个初始值。这个初始值就在重装载寄存器(IWDG_RLR)中寄存,其默认值为0xFFF,咱们也能够将其改为其他值。

计数器的时钟由LSI时钟经过分频后供给,预分频因子由预分频寄存器(IWDG_PR)的值来确认。详细的说IWDG_PR寄存器只要最低的3位是有用的,其他高位永久都为0,这最低的3位就决议了预分频因子,这3位的值与预分频因子的联系如下。

000: 预分频因子=4 100: 预分频因子=64 001: 预分频因子=8 101: 预分频因子=128010: 预分频因子=16 110: 预分频因子=256 011: 预分频因子=32 111: 预分频因子=256 

除了上面介绍的两个寄存器,IWDG还有别的两个寄存器,合起来共四个寄存器,分别是:

键寄存器(IWDG_KR)

预分频寄存器(IWDG_PR)

重装载寄存器(IWDG_RLR)

状况寄存器(IWDG_SR)

所谓键寄存器(IWDG_KR),能够以为便是个操控寄存器,舱位看门狗,喂狗需求操作键寄存器,修正其他寄存器值也需求先操作键寄存器(IWDG_KR)。

舱位看门狗

向键寄存器(IWDG_KR)写入0xCCCC,发动看门狗作业。IWDG一旦发动了就不会中止,除非掐断单片机的供电。也便是说看门狗不受休眠或RESET的影响。

IWDG->KR = 0xCCCC;

STM32F10x_StdPeriph_Driver供给了如下函数。

void IWDG_Enable(void);

喂狗

向键寄存器(IWDG_KR)写入0xAAAA,这时计数器的值会复位为重装载寄存器(IWDG_RLR)的值。

不然,当计数器为0时,看门狗会发生复位。

IWDG->KR = 0xAAAA;

STM32F10x_StdPeriph_Driver供给了如下函数。

void IWDG_ReloadCounter(void);

修正预分频因子

向键寄存器(IWDG_KR)写入0x5555,向预分频寄存器(IWDG_PR)写入新值。

留意这两步之间不能有其他的对IWDG的操作。

IWDG->KR = 0x5555;IWDG->PR = value;

使用STM32F10x_StdPeriph_Driver则需求如下调用两个函数。

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);IWDG_SetPrescaler(value);

修正重装载寄存器的值

向键寄存器(IWDG_KR)写入0x5555,向重装载寄存器(IWDG_RLR)写入新值。

留意这两步之间不能有其他的对IWDG的操作。

IWDG->KR = 0x5555;IWDG->RLR = value;

使用STM32F10x_StdPeriph_Driver则需求如下调用两个函数。

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);IWDG_SetReload(value);

预分频寄存器、重装载寄存器与看门狗超时时刻的联系如下表所示。

上面的介绍都没有涉及到状况寄存器(IWDG_SR)。这个寄存器不太常用,需求了解的能够参看STM32参考手册。

别的,当用调试器调试代码时,咱们期望在发生断点时,计数器能够中止计数。这能够经过设置DBGMCU_CR的第8位(DBG_IWDG_STOP位)来完成。

0:看门狗计数器依然正常作业;

1:看门狗计数器中止作业。

操作代码如下:

DBGMCU->CR |= 0x100;

STM32F10x_StdPeriph_Driver中也供给了相应的操作函数:

DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部