看門(mén)狗原理:
防止由于各種錯(cuò)誤使得當(dāng)偏激程序跑飛 的機(jī)制
本質(zhì)上是硬件計(jì)數(shù)器井赌,正向計(jì)數(shù)器壕曼。計(jì)數(shù)到最大值的時(shí)候會(huì)復(fù)位琳拨。也就是說(shuō),為了防止復(fù)位弛随,必須在指定的時(shí)間內(nèi)將計(jì)數(shù)器清零(喂狗)
輸入時(shí)鐘源有三個(gè):LPO(內(nèi)部1KHz時(shí)鐘)澈蝙,Bus Clock(替代時(shí)鐘)
看門(mén)狗的形式:獨(dú)立看門(mén)狗和窗口看門(mén)狗。獨(dú)立看門(mén)狗可以在0到最大值之間都可以喂狗撵幽;窗口看門(mén)狗只能在設(shè)定的最小值和最大值之間喂狗。
看門(mén)狗應(yīng)用:
/*看門(mén)狗初始化 */
WDOG_InitTypeDef WDOG_InitStruct1;
WDOG_InitStruct1.windowInMs = 0;
WDOG_InitStruct1.mode = kWDOG_Mode_Normal; //設(shè)置為獨(dú)立看門(mén)狗
WDOG_InitStruct1.timeOutInMs = 2000; /* 時(shí)間設(shè)定為2000ms */
WDOG_Init(&WDOG_InitStruct1);
//喂狗
WDOG_Refresh();
PS:其實(shí)這么看起來(lái)礁击,是用別人的固件庫(kù)盐杂,模塊功能的初始化套路都差不多。
1.定義一個(gè)初始化的結(jié)構(gòu)體變量
2.給結(jié)構(gòu)體變量賦值
3.調(diào)用初始化函數(shù)進(jìn)行初始化哆窿。
再者就是調(diào)用里面的函數(shù)使用链烈。重點(diǎn)就在于看懂函數(shù)的功能和使用方法≈壳可以有效地減少硬件知識(shí)對(duì)開(kāi)發(fā)人員的影響强衡。但是,對(duì)于要想要學(xué)習(xí)硬件開(kāi)發(fā)的人員來(lái)說(shuō)码荔,不算什么好的選擇漩勤,但是用來(lái)入門(mén)還是很好的。