01. WWDG概述3 B' l# s( R$ @" e- ]
stm32f4xx_wwdg.h和 stm32f4xx_wwdg.c文件中。
3 a2 c3 q) m& P) Z) _. _/ n. A0 D* i( @& \' N
02. 相关类型3 C! Z7 J: v4 }8 ~
WWDG_Prescaler
, z8 D2 ^- s- i9 d; m) Y) O5 s/ a: q: L# h2 V2 z. }
- /** @defgroup WWDG_Prescaler 2 [: S% C; g# R8 }. t/ p' v7 `
- * @{ O) r' x3 M9 \: g+ Z
- */: X' u( B" G. I5 x
- Q; m" t3 X5 A! y- #define WWDG_Prescaler_1 ((uint32_t)0x00000000). {$ S9 p5 Y" G. d) F
- #define WWDG_Prescaler_2 ((uint32_t)0x00000080)
5 I% ^0 D2 Y% `- U6 f - #define WWDG_Prescaler_4 ((uint32_t)0x00000100)& R9 C0 z0 b# d4 ?: M
- #define WWDG_Prescaler_8 ((uint32_t)0x00000180)
+ b3 \. [ ~- p - #define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_Prescaler_1) || \
; }' E' o$ A6 O$ B" C6 a5 r0 E - ((PRESCALER) == WWDG_Prescaler_2) || \
" h/ j# N; }4 j8 n: C* t& P8 e! e - ((PRESCALER) == WWDG_Prescaler_4) || \5 x$ J9 w$ p0 f4 K
- ((PRESCALER) == WWDG_Prescaler_8))
, R, u. u- }: n, ^9 f - #define IS_WWDG_WINDOW_VALUE(VALUE) ((VALUE) <= 0x7F)
6 U' m% f1 C$ p" E# S4 v: X5 c - #define IS_WWDG_COUNTER(COUNTER) (((COUNTER) >= 0x40) && ((COUNTER) <= 0x7F))
复制代码
% F6 y. q" o8 h* _. N中断处理函数4 B* g( @. H( b4 [% x3 D
& ]' e; B3 @) T* J
- WWDG_IRQn = 0, /*!< Window WatchDog Interrupt*/
复制代码
! S: N9 B7 {+ [$ L, t2 V* o03. 相关函数* g, d& q( S. c, A
- /* Function used to set the WWDG configuration to the default reset state ****/ , c7 X& c' T0 j; i' g7 [2 G
- void WWDG_DeInit(void);
; |+ \- L0 t" L- ?# m5 b
& n- y% _* c( b1 X1 o- /* Prescaler, Refresh window and Counter configuration functions **************/
, x+ y1 n0 _$ L: {8 U - void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
7 X5 w4 J+ k6 ^! ]: [ - void WWDG_SetWindowValue(uint8_t WindowValue);
/ J: G) {1 k! {0 k- S - void WWDG_EnableIT(void);
$ f8 y) d6 t d - void WWDG_SetCounter(uint8_t Counter);
' E& i; J. K" W- {4 h
8 G9 R; I' A( S6 j% p+ z- /* WWDG activation function ***************************************************/
6 v) r; m# R) K4 m3 S4 N0 @$ i - void WWDG_Enable(uint8_t Counter);
8 n1 a. T% |8 Y1 ]2 M7 c - : e+ L ~ a r. u p+ A
- /* Interrupts and flags management functions **********************************/
# T: Z( i$ Z# e9 L1 K# G- k - FlagStatus WWDG_GetFlagStatus(void);+ B# ]: B" R: ^3 |6 i
- void WWDG_ClearFlag(void);
复制代码
4 o: D5 r9 |' H- h- P L04. 结构体封装9 F$ ~! X6 ~4 n! R+ t- e, N0 Q
- /**
; v1 \! I$ f' \/ |0 ~ - * @brief Window WATCHDOG7 p9 \" ?' P' h5 s T h) C* L1 @
- */
1 M" Z7 ^( }; Z1 h - 7 k4 d9 k9 H" }) `! Y
- typedef struct/ @3 ~8 N* Z8 s3 ?' P
- {$ q; z) C& h( _7 _
- __IO uint32_t CR; /*!< WWDG Control register, Address offset: 0x00 */
, ~3 q6 [5 [4 N4 S - __IO uint32_t CFR; /*!< WWDG Configuration register, Address offset: 0x04 */) V. A7 D6 m; e) [# r
- __IO uint32_t SR; /*!< WWDG Status register, Address offset: 0x08 */4 }5 s( h) S. N. g) n9 E5 r
- } WWDG_TypeDef;
复制代码 2 p7 i: r3 [: Z% g C/ z0 y: ~
' o- P! |! m( \; K7 @8 j9 T
|