嵌入式单片机开发实战例程合集:
链接:https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd=28ab
提取码:28ab
=========================================
IWDG模块测试
1、功能描述
STM32F10X内置两个看门狗,提供了更高的安全性,时间的精确下性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗 )可用来检测和解决由软件错误引起的故障,当计数器达到给定的超时值时,触发一个中断或产生系统复位。
独立看门狗(IWD)由专用的32KHZ的低速时钟为驱动;因此,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的行为
IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。
3、软件代码
#include"stm32f10x_lib.h"
/***************************************************
* 函数名称:void IWDG_Configuration(void)
* 功能描述:独立看门狗的配置
* 入口参数:无
* 参考参数:无
***************************************************/
void IWDG_Configuration(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // 使能对寄存器IWDG_PR和IWDG_RLR的写操作 ;
IWDG_SetPrescaler(IWDG_Prescaler_256); // 设置IWDG预分频值 /256 ;40K/256=156HZ(6.4ms) 5s/6.4ms=781
IWDG_SetReload(781); // 设置IWDG重装载值 ;要小于0xfff
IWDG_ReloadCounter(); // 按照IWDG重装载寄存器的值重装载IWDG计数器 ;
IWDG_Enable(); // 使能IWDG ;
}
extern void Delay_Ms(u16 time);
void SysTickHandler(void)
{
/* Reload IWDG counter */
IWDG_ReloadCounter(); // 按照IWDG重装载寄存器的值重装载IWDG计数器 ;
GPIO_ResetBits(GPIOA, GPIO_Pin_3);
}