STM32F10系列芯片內(nèi)置了2個看門狗,提高了更高的安全性等好處。獨立看門狗(IWDG)是由專門的40KHz的低速時鐘驅(qū)動,即使主時鐘發(fā)生故障也仍然有效。
IWDG的主要特征有自由運行的遞減計數(shù)器,時鐘由獨立的RC振蕩器提供,看門狗被激活后,則在計數(shù)器計數(shù)至0x000時產(chǎn)生復(fù)位。
WWDG的主要特征有可編程的自由運行遞減計數(shù)器,條件復(fù)位:當(dāng)遞減計數(shù)器的之小于0x40,若看門狗被起動則產(chǎn)生復(fù)位,要是在窗口外被重新裝載,要是看門狗被起動,則產(chǎn)生復(fù)位;如果啟動了看門狗并且允許中斷,當(dāng)遞減計數(shù)器等于0x40是產(chǎn)生早期喚醒中斷(EWI),他可以被用于重裝載計數(shù)器以避免WWDG復(fù)位。
以下介紹獨立看門狗庫函數(shù)的使用方法。
1.IWDG_WriteAccessCmd函數(shù)的功能是使能或者失能對寄存器IDWG_PR和IDWG_RLR的寫操作。
參數(shù)IWDG_WriteAccess用于使能或失能對寄存器IWDG_PR和IWDG_RLR的寫操作??扇nable/Disable。
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
2.IWDG_SetPrescaler函數(shù)的功能是設(shè)置IWDG的預(yù)分頻值。可以去4、8、16、32、64、128、256.
IWDG_SetPrescaler(IWDG_Prescaler_8);
3.IWDG_SetReload函數(shù)的功能是設(shè)置IWDG重裝載值。
IWDG_SetReload(0xFFFF);
4.IWDG_ReloadCounter函數(shù)的功能是按照IWDG重裝載寄存器的值重裝載IWDG計數(shù)器。
IWDG_ReloadCounter();
5.IWDG_Enable函數(shù)的功能是施恩那個IWDG;
以下是窗口看門狗庫函數(shù)的基本介紹及使用。
6.WWDG_DeInit函數(shù)的功能是將外設(shè)WWDG寄存器重設(shè)為默認值。
7.WWDG_SetPrescaler函數(shù)的功能是設(shè)置WWDG預(yù)分頻值。參數(shù)WWDG_Precscaler可取1、2、4、8.
WWDG_SetPrescaler(WWDG_Prescaler_8);
8.WWDG_SetWindowValue函數(shù)的功能是設(shè)置WWDG窗口值。參數(shù)值取值范圍在0x40到0x7F之間。
9.WWDG_EnableIT函數(shù)的功能是使能WWDG早期喚醒中斷(EWI)。
10.WWDG_SetCounter函數(shù)的功能是設(shè)置WWDG計數(shù)器值。參數(shù)取值范圍在0x40到0x7F之間。
11,WWDG_Enable函數(shù)的功能是使能WWDG并裝入計數(shù)器值。參數(shù)取值范圍在0x40到ox7F之間。
12.WWDG_GetFlagStatus函數(shù)的功能是檢查WWDG早期喚醒中斷標(biāo)志位被設(shè)置與否。
13.WWDG_ClearFlag函數(shù)的功能是清除早期喚醒中斷標(biāo)志位。