STM32 看门狗学习笔记
来源:互联网 发布:复杂网络社区发现 编辑:程序博客网 时间:2024/06/05 19:25
STM32 有两个看门,一个是独立看门狗,一个是窗口看门狗.这里先说独立看门狗.
以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。
独立看门狗的特性是,要利用片内的40k RC振荡器作为时钟据(说这个RC是相当的不准),优点就是,即使CPU主晶振
停了,即使CPU进入了休眠模式,狗也可以生效.当CPU进入休眠模式,并且是深度休眠的时候,这个看门狗可以作为一个CPU 的定时唤醒闹钟,以达到超低功耗的同时还会定时醒来.看门狗由于最大可以分频到256,看门狗定时器最大可以设置到0xfff,所以最最长的喂狗时间是26秒.....用于CPU的唤醒恰到好处。
利用公式Tout=((4×2^prer) ×rlr) /40
其中Tout 为看门狗溢出时间(单位为ms);prer 为看门狗时钟预分频值(IWDG_PR 值),
范围为0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值);
利用公式可以计算出看门狗的溢出时间,只要在溢出时间内喂狗的话,就可以保证程序不跑飞掉。其中看门狗的重装载值rlr可以自己设置(范围0——0xfff),看门狗时钟预分频值(范围0——7).
首先 可以查阅stm32的使用手册有这样一幅图
当你设置为32分频时,则时钟就变为1.25KHz 此时也就是说计数器加1或者减1所花费的最短时间是(1/1.25)=0.8ms,因此如果设置加载值为349,则喂狗的最长时间应该是350*(1/1.25)=280ms
注意此处都是最长 最短 并不是确切的值 这些时间是按照40kHz 时钟给出。实际上,MCU内部的RC频率会在30kHz 到60kHz 之间变化。此外,即使RC振荡器的频率是精确的,确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间的相位差,因此总会有一个完整的RC周期是不确定的。
通过对LSI进行校准可获得相对精确的看门狗超时时间。
void IWDG_Configuration(void)
{
/* 写入0x5555,用于允许狗狗寄存器写入功能 */
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
/* 狗狗时钟分频,40K/256=156HZ(6.4ms)*/
IWDG_SetPrescaler(IWDG_Prescaler_256);
/* 喂狗时间 5s/6.4MS=781 .注意不能大于0xfff*/
IWDG_SetReload(781);
/* 喂狗*/
IWDG_ReloadCounter();
/* 使能狗狗*/
IWDG_Enable();
}
- STM32 看门狗学习笔记
- stm32学习笔记 F1系列独立看门狗与窗口看门狗
- STM32学习笔记一一独立看门狗
- STM32学习笔记一一窗口看门狗
- stm32学习笔记(五)独立看门狗
- stm32学习笔记(六)窗口看门狗
- stm32 独立看门狗学习
- STM32学习--看门狗
- STM32窗口看门狗_原子战舰WWDG例程学习笔记
- STM32学习笔记之独立看门狗(IWDG)的使用
- 资料学习:STM32之看门狗
- STM32学习-理解窗口看门狗
- 看门狗定时器学习笔记
- 【学习笔记】看门狗子系统
- MSP430学习笔记-看门狗
- STM32自学笔记——看门狗
- stm32看门狗
- stm32看门狗
- xml的三种解析方式
- 恢复手机误删的照片很轻松!
- 【数据库】将Excel导入数据库
- DBCC用法
- C# WinForm开发系列 - WebBrowser
- STM32 看门狗学习笔记
- B - 阅读顺序
- Form Builder开发中可重用对象(Resuing Objects)
- p2v错误日志
- jsp tomcat6.0开发部署
- 从用户角度理解"零拷贝" sendfile(Zero Copy I: User-Mode Perspective)
- Freemarker 快速说明
- 【go语言】查看包里面的函数
- spring的传播行为和隔离级别