看门狗原理:
防止由于各种错误使得当偏激程序跑飞 的机制
本质上是硬件计数器,正向计数器。计数到最大值的时候会复位。也就是说,为了防止复位,必须在指定的时间内将计数器清零(喂狗)
输入时钟源有三个:LPO(内部1KHz时钟),Bus Clock(替代时钟)
看门狗的形式:独立看门狗和窗口看门狗。独立看门狗可以在0到最大值之间都可以喂狗;窗口看门狗只能在设定的最小值和最大值之间喂狗。
看门狗应用:
/*看门狗初始化 */
WDOG_InitTypeDef WDOG_InitStruct1;
WDOG_InitStruct1.windowInMs = 0;
WDOG_InitStruct1.mode = kWDOG_Mode_Normal; //设置为独立看门狗
WDOG_InitStruct1.timeOutInMs = 2000; /* 时间设定为2000ms */
WDOG_Init(&WDOG_InitStruct1);
//喂狗
WDOG_Refresh();
PS:其实这么看起来,是用别人的固件库,模块功能的初始化套路都差不多。
1.定义一个初始化的结构体变量
2.给结构体变量赋值
3.调用初始化函数进行初始化。
再者就是调用里面的函数使用。重点就在于看懂函数的功能和使用方法。可以有效地减少硬件知识对开发人员的影响。但是,对于要想要学习硬件开发的人员来说,不算什么好的选择,但是用来入门还是很好的。