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