[原创] 【连载】【星光闪电STM32F407开发板】第九章 独立看门狗实验

hejecu   2018-11-11 15:43 楼主
                 第九章 独立看门狗实验

9.1 实验目的
STM32的内部自带2个看门狗:独立看门狗和窗口看门狗,本章我们学习独立看门狗的使用。

9.2 实验简介
看门狗的作用:是在微控制器进入错误状态后的一定时间内复位。当看门狗使能时,如果用户程序没有在溢出周期内喂狗(给看门狗定时器重装定时值),看门狗会产生一个系统复位,这样在程序运行时开启看门狗,对程序进行监视,可防止程序跑飞而死机。
STM32 的独立看门狗由内部专门的32Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部RC时钟,所以并不是准确的32Khz,而是在15~47Khz之间的一个可变化的时钟,只是我们在估算的时候,以32Khz的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。
在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。
        无论何时,只要键寄存器 IWDG_KR 中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。
IWDG_PR 和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。 将其他值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入0xAAAA)也会启动写保护功能。
注意 IWDG在一旦启用,就不能再被关闭!想要关闭,只能重启,并且重启之后不能打开IWDG,否则还是不能关闭。

9.3 电路设计
这里我们利用前面章节的按键盒LED电路,来验证看门狗的监视复位功能。

9.4 软件设计
打开光盘目录下的3、程序源码->1、基础实验->下的实验6 独立看门狗实验工程,打开左侧目录树BSP下的iwdg.c文件,此为独立看门狗的驱动程序文件,工程目录如下图所示:
图片1.png
图9.4.1

打开iwdg.c文件,代码如下:
                                     图片2.png
                                     图片3.png
打开main.c文件,代码如下:
                                     图片4.png
                                     图片5.png

9.5 下载验证
用MINI USB线通过CN3的USB口连接电脑和开发板,拨动电源开关给开发板上电,D3电源指示灯点亮,连接好JLINK/ST-LINK下载调试器,打开“实验6 独立看门狗实验”工程代码,编译下载D4D5指示灯常亮一下,然后快闪烁一下,如果没按下KEY1按键,看门狗复位,重复前面的过程;如果按下KEY1按键不松开,D4 D5指示灯快闪烁,看门狗不会复位。


回复评论 (2)

持续 关注,加油!
专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
点赞  2018-11-12 08:44
多谢楼主的分享
点赞  2018-11-13 10:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复