|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
AT32的看门狗是一个12位递减计数器,当看门狗递减到0时产生系统复位,使用LSI(频率大约为40Khz)作为看门狗时钟,,在应用程序中,需要不断地刷新计数器(俗称喂狗),以防止看门狗发生复位,看门狗虽然是一个很小的外设,功能也相对简单,但是对我们的设备能可靠的运行起到了很大的作用,它可以在一些意外情况(比如干扰,程序bug)导致程序跑飞时,复位mcu" ]0 h6 U, k; W6 V) g
/ M2 q# y7 p* a( P; D
/* 解锁看门狗写保护*/; o- t. I3 g) N8 c5 ]! z
IWDG_KeyRegWrite(IWDG_KeyRegWrite_Enable);7 r8 O6 Z$ I7 X# N0 Y# U
2 e: _. `2 a+ }2 r( A
/* 设置分频系数为32*/
% _1 j& Y2 r$ @( u6 P IWDG_SetPrescaler(IWDG_Psc_32);: h. H4 o A3 K6 q5 X' r
: r7 ~" n3 L5 @: s /* 设置看门狗的复位时间为250ms. (LsiFreq一般等于40000hz)
* Z, l3 E6 v, Z7 q: E/ Z2 b 重载值 = 250ms / (32/LsiFreq)( q* g+ D& ~$ `- e; D- {6 X
= 0.25s / (32/LsiFreq)! E% e4 J6 _9 k! M2 n5 f1 w5 M5 d
= LsiFreq/(32 * 4)9 a0 ^* f& A2 E
= LsiFreq/128' K) _. y. |" |' O, \0 l8 @8 k" K
*/! N# L/ v" C& }- i& c
IWDG_SetReload(LsiFreq / 128);0 r/ E y/ _& O _, [ C
# r3 W& d" Z I
/* 重载看门狗计数器*/
# b0 {8 o3 ]. B z! x( E9 d8 H IWDG_ReloadCounter();+ j4 L3 O5 b: G: _
9 [5 L4 R/ c, t+ ]* y( @5 T /* 使能看门狗 */) l6 M, q: S& i/ w' u: W( `! P- g
IWDG_Enable();
1 U9 ?' B+ b3 c. c
4 @* K! F( |7 x& ^& j9 W |
|