我們在看STM32中文參考手冊p316頁IWDG獨(dú)立看門狗時,看到“如果用戶在選擇字節(jié)中啟用了“硬件看門狗”功能,在系統(tǒng)上電復(fù)位后,看門狗會自動開始運(yùn)行;如果在計數(shù)器計數(shù)結(jié)束前,若軟件沒有向鍵寄存器寫入相應(yīng)的值,則系統(tǒng)會產(chǎn)生復(fù)位”這樣一段關(guān)于硬件看門狗的描述,那么什么是硬件看門狗,與軟件看門狗什么區(qū)別呢,這里的選擇字節(jié)說的是哪呢,我們接著往下說
1.硬件看門狗和軟件看門狗的區(qū)別:
看門狗分為硬件看門狗和軟件看門狗,硬件看門狗就是利用獨(dú)立于處理器的定時器電路,當(dāng)狗餓死后會產(chǎn)生復(fù)位信號并重啟;而軟件看門狗則是用處理器內(nèi)部的某個定時器代替獨(dú)立于處理器的定時器電路,顯然后者不能擺脫處理器出現(xiàn)問題實(shí)現(xiàn)自動重啟的功能,其意義也就大打折扣了。當(dāng)然從硬件角度講,這個軟件看門狗也是“硬件”實(shí)現(xiàn),而并非字面的“軟件”意義了。
2.選擇字節(jié):
選擇字節(jié)即我們32的flash中的選擇字段,參看stm32閃存編程手冊可看到,選擇字段的作用主要用于我們選擇是硬件模式的看門狗還是軟件模式的看門狗以及設(shè)置進(jìn)入停機(jī)或待機(jī)模式時系統(tǒng)是否復(fù)位的配置的。而選擇字段的寄存器是通過選擇字節(jié)寄存器(FLASH_OBR)來配置,由其復(fù)位值0x03ff fffc可知,我們的看門狗默認(rèn)是硬件看門狗,而默認(rèn)在進(jìn)入待機(jī)模式和停機(jī)模式是不產(chǎn)生復(fù)位的。因此我們無須擔(dān)心看門狗是否需要配置的問題,默認(rèn)就是硬件看門狗