微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32的独立看门狗

STM32的独立看门狗

时间:11-19 来源:互联网 点击:

该代码就 2 个函数,void IWDG_Init(u8 prer,u16 rlr)是独立看门狗初始化函数,就是按照
上面介绍的步骤 1~4 来初始化独立看门狗的。该函数有 2 个参数,分别用来设置与预分频数与
重装寄存器的值的。通过这两个参数,就可以大概知道看门狗复位的时间周期为多少了。其计
算方式上面有详细的介绍,这里不再多说了。
void IWDG_Feed(void)函数,该函数用来喂狗,因为 STM32 的喂狗只需要向键值寄存器写
入 0XAAAA 即可,也就是调用 IWDG_ReloadCounter()函数,所以,我们这个函数也是简单的很。
头文件 wdg.h 的源码如下大家可以看下,这里我们就不列出来了。
接下来我们看看主函数 main 的代码。在主程序里面我们先初始化一下系统代码,然后启动
按键输入和看门狗,在看门狗开启后马山点亮 LED0(DS0),并进入死循环等待按键的输入,
一旦 WK_UP 有按键,则喂狗,否则等待 IWDG 复位的到来。这段代码很容易理解,该部分代
码如下:
int main(void)
{
delay_init();
//延时函数初始化
NVIC_Configuration(); //设置 NVIC 中断分组 2:2 位抢占优先级,2 位响应优先级
uart_init(9600);
//串口初始化波特率为 9600
LED_Init();
//初始化与 LED 连接的硬件接口
KEY_Init(); //按键初始化
185
delay_ms(500); //让人看得到灭
IWDG_Init(4,625); //与分频数为 64,重载值为 625,溢出时间为 1s
LED0=0;
//点亮 LED0
while(1)
{
if(KEY_Scan(0)==KEY_UP)
{
IWDG_Feed(); //如果 WK_UP 按下,则喂狗
}
delay_ms(10);
};
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top