1.简介:
STM32F10XXX内置两个看门狗:独立看门狗和窗口看门狗。独立看门狗本质是:当计数器达到给定的超时值时,产生系统复位。
独立看门狗(IWDG)由专用的内部低速时钟(LSI)驱动,即在停止模式或待机模式等低功耗模式时任然有效。
2.主要性能:
- 自由运行的递减计数器
- 时钟有独立的RC振荡器提供(可在停止和待机模式下工作)
- 看门狗被激活后,则在计数器计数至0x000时产生复位
3.使用方法:
- 在键值寄存器(IWDG_KR)中写入0xCCCC,启用独立看门狗;
- 计数器开始从复位值0xFFF递减计数
- 当计数器计数到末尾0x000时,产生复位信号(IWDG_RESET)
- 在计数器计数未到0x000之前,在键值寄存器(IWDG_KR)中写入0xAAAA,IWDG_RLR中的值会被重新加载到计数器,避免看门狗产生复位。
4.重要寄存器描述:(具体是哪个bit代表什么意思不做描述)
1)键寄存器(IWDG_KR)
写入0xAAAA,防止计数器递减到0产生复位;
写入0x5555,表示允许访问预分频寄存器(IWDG_PR)和重装载寄存器(IWDG_RLR)
写入0xCCCC,启动看门狗
2)预分频寄存器(IWDG_PR)
对LSI(40KHz)进行4/8/16/32/64/128/256分频
3)重装载寄存器(IWDG_RLR)
默认初始值为0xFFF,最大值为0xFFF;
每当向键寄存器(IWDG_KR)写入0xAAAA时,会将重装载寄存器(IWDG_RLR)中的值传送到计数器中,进行递减计数。所以独立看门狗的超时时间跟重装载寄存器(IWDG_RLR)和预分频寄存器(IWDG_PR)有关,公式如下:
看门狗超时时间 = 重装载寄存器值*(预分频寄存器值/40000)
5.程序:
喂狗时执行IWDG_ReloadCounter();