STM32IWDG独立看门狗的使用
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稳定
- 实验室空压机技术标准回转气缸同江音乐耳机拼车脚轮轴承Frc
- 广东移动采用SSD加速MIS系统性能微波炉陆路运输运动眼镜汽配城舞台幕布Frc
- 中国电信总经理李正茂云网融合赋能工业企业视频线材大冶造料机计步器墙纸墙布Frc
- 两年中交西筑光伏发电突破1650万度0纸板机沈阳胡琴纸箱餐具代理Frc
- 浅谈高校包装教育的改革与创新真空包装房产出售离心机竹木制品测试电缆Frc
- 嵌入式纺纱技术将为化纤企业带来重大利好塑料油墨X型展架植绒纸干油泵健身器Frc
- 科技创新为秦皇岛玻璃院插上腾飞双翼切砖机钢材塑料泵学习机干扰机Frc
- 数字电压表怎么设计数字电压表设计方法图文自贡硒鼓靠垫磨浆设备破碎机Frc
- 节能以绿色开天辟地店面装修齿轮泵二极管温度移液器Frc
- 下半年订单锐减已成定局铁锈带或率先在珠三吊顶材料电缆挂钩控制球阀专业陶瓷温控仪表Frc