STM32
直播中

凤毛麟角

8年用户 906经验值
私信 关注
[问答]

怎样去编写独立看门狗(IWDG)的代码

独立看门狗(IWDG)的主要性能有哪些?
独立看门狗(IWDG)的重要寄存器有哪些?
如何去使用独立看门狗(IWDG)?
怎样去编写独立看门狗(IWDG)的代码?

回帖(1)

罗丹

2021-8-11 16:37:15
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();
举报

更多回帖

发帖
×
20
完善资料,
赚取积分