26. 独立看门狗实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个是窗口看门狗WWDG。两个看门狗外设(独立和窗口)均可用于检测 并解决由软件错误导致的故障。独立看门狗简单理解其是就是一个12位 递减计数器,当计数器从某一个值递减到0时(如果看门狗已激活),系 统就会产生一次复位。如果在计数器递减到0之前刷新了计数器值,那么 系统就不会产生复位。这个刷新计数器值过程我们称之为“喂狗”。看 门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
(2)设置IWDG预分频系数和重装载值
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); void IWDG_SetReload(uint16_t Reload); Tout = (4*2^pre) / 40 * rlr 其中Tout为独立看门狗溢出时间,单位是ms。pre是预分频器系数(0-6),rlr 是重装载寄存器的值,公式内的40是独立看门狗的时钟。
普中STM32开发板带您进入ARM世界
4.编写独立看门狗控制程序
本章所要实现的功能是:通过K_UP按键进行喂狗,喂狗的时候D2指示 灯亮,同时串口输出“喂狗”提示信息,超过喂狗时间系统重启D2指示 灯灭,同时串口输出“复位系统”提示信息,同时使用D1指示灯闪烁表 示系统运行。程序框架如下: (1)初始化IWDG(开启IWDG,设置溢出时间) (2)编写主函数
普中STM32开发板带您进入ARM世界
独立看门狗(IWDG)实验
普中STM32开发板带您进入ARM世界
本讲主要内容
1.IWDG介绍 2.IWDG配置步骤 3.硬件电路 4.编写独立看门狗控制程序
普中STM32开发板带您进入ARM世界
1.IWDG介绍
1.1 IWDG简介 STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另
(3)重载计数器值(喂狗)(给IWDG_KR寄存器写入0XAAAA)
IWDG_ReloadCounter();
普中STM32开发板带您进入ARM世界
(4)开启IWDG(给IWDG_KR寄存器写入0XCCCC)
IWDG_Enable();
ຫໍສະໝຸດ Baidu中STM32开发板带您进入ARM世界
3.硬件电路
由于IWDG是STM32F1内部资源,因此本硬件电路非常简单,只有LED指 示灯、K_UP按键连接,其对应的电路图在前面章节中都有介绍,这里就 不多说。D1指示灯用来提示系统运行,D2指示灯用来作为喂狗和系统重 启时的提示,K_UP按键用来喂狗操作,喂狗时D2指示灯亮,喂狗失败系 统重启,D2指示灯灭。
普中STM32开发板带您进入ARM世界
1.2 IWDG结构框图 要更好的理解独立看门狗,就需要了解它内部的结构。
普中STM32开发板带您进入ARM世界
2.IWDG配置步骤
接下来我们介绍下如何使用库函数对IWDG进行配置。这个也是在编写 程序中必须要了解的。具体步骤如下:(IWDG相关库函数在 stm32f10x_iwdg.c和stm32f10x_iwdg.h文件中)。 (1)开启寄存器访问(给IWDG_KR寄存器写入0X5555)
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
(2)设置IWDG预分频系数和重装载值
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); void IWDG_SetReload(uint16_t Reload); Tout = (4*2^pre) / 40 * rlr 其中Tout为独立看门狗溢出时间,单位是ms。pre是预分频器系数(0-6),rlr 是重装载寄存器的值,公式内的40是独立看门狗的时钟。
普中STM32开发板带您进入ARM世界
4.编写独立看门狗控制程序
本章所要实现的功能是:通过K_UP按键进行喂狗,喂狗的时候D2指示 灯亮,同时串口输出“喂狗”提示信息,超过喂狗时间系统重启D2指示 灯灭,同时串口输出“复位系统”提示信息,同时使用D1指示灯闪烁表 示系统运行。程序框架如下: (1)初始化IWDG(开启IWDG,设置溢出时间) (2)编写主函数
普中STM32开发板带您进入ARM世界
独立看门狗(IWDG)实验
普中STM32开发板带您进入ARM世界
本讲主要内容
1.IWDG介绍 2.IWDG配置步骤 3.硬件电路 4.编写独立看门狗控制程序
普中STM32开发板带您进入ARM世界
1.IWDG介绍
1.1 IWDG简介 STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另
(3)重载计数器值(喂狗)(给IWDG_KR寄存器写入0XAAAA)
IWDG_ReloadCounter();
普中STM32开发板带您进入ARM世界
(4)开启IWDG(给IWDG_KR寄存器写入0XCCCC)
IWDG_Enable();
ຫໍສະໝຸດ Baidu中STM32开发板带您进入ARM世界
3.硬件电路
由于IWDG是STM32F1内部资源,因此本硬件电路非常简单,只有LED指 示灯、K_UP按键连接,其对应的电路图在前面章节中都有介绍,这里就 不多说。D1指示灯用来提示系统运行,D2指示灯用来作为喂狗和系统重 启时的提示,K_UP按键用来喂狗操作,喂狗时D2指示灯亮,喂狗失败系 统重启,D2指示灯灭。
普中STM32开发板带您进入ARM世界
1.2 IWDG结构框图 要更好的理解独立看门狗,就需要了解它内部的结构。
普中STM32开发板带您进入ARM世界
2.IWDG配置步骤
接下来我们介绍下如何使用库函数对IWDG进行配置。这个也是在编写 程序中必须要了解的。具体步骤如下:(IWDG相关库函数在 stm32f10x_iwdg.c和stm32f10x_iwdg.h文件中)。 (1)开启寄存器访问(给IWDG_KR寄存器写入0X5555)