01. WWDG概述. t8 P/ [- v) E9 s: _7 p* a
stm32f4xx_wwdg.h和 stm32f4xx_wwdg.c文件中。) M; c9 W" R2 F, B! R* Q
/ o s1 d# G0 e, W* y. F, @
02. 相关类型* A. D) m) n4 z7 ]. S, T- w+ y
WWDG_Prescaler- K1 |* A0 A: m q R% j1 V- B S
9 T4 O1 G- g4 @- /** @defgroup WWDG_Prescaler ~# Y& }/ c/ F/ u' ]- f
- * @{
3 K1 x1 c+ {" q! L& @" Q- N - */
$ ]% S9 ~: E; O- z( R) Z - $ x$ [# W* P* H' K8 P. N. a3 o8 Z
- #define WWDG_Prescaler_1 ((uint32_t)0x00000000)
W4 b/ _4 W3 m+ Z# s& W - #define WWDG_Prescaler_2 ((uint32_t)0x00000080)
5 x/ y \/ h, p9 y9 ^" ? V - #define WWDG_Prescaler_4 ((uint32_t)0x00000100)
7 b, n8 G* c% p- J - #define WWDG_Prescaler_8 ((uint32_t)0x00000180); J' T% \' `' F( w3 X. i3 l
- #define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_Prescaler_1) || \
9 F8 g2 ]9 ]) D* R" B, I! b4 o7 x" J1 v - ((PRESCALER) == WWDG_Prescaler_2) || \# d& `+ l: N# _) w" q0 ^- Y
- ((PRESCALER) == WWDG_Prescaler_4) || \+ r* Y, ?/ A/ _ D0 Z1 K( d
- ((PRESCALER) == WWDG_Prescaler_8))
: }& q9 N* e0 h& [4 ~2 R - #define IS_WWDG_WINDOW_VALUE(VALUE) ((VALUE) <= 0x7F). G, X1 d5 ^+ X$ |/ p7 Y: [! o% b
- #define IS_WWDG_COUNTER(COUNTER) (((COUNTER) >= 0x40) && ((COUNTER) <= 0x7F))
复制代码 . B4 x/ f$ x7 i
中断处理函数& E0 B8 P" k- g. N* D
/ {* f6 L* G- i" q: i0 g
- WWDG_IRQn = 0, /*!< Window WatchDog Interrupt*/
复制代码
( W c9 z6 D9 O" e4 d: H03. 相关函数
+ c! o% w0 l9 Z8 k4 D* G- /* Function used to set the WWDG configuration to the default reset state ****/
( |0 f) D5 Z& i# ? A# P9 L, z - void WWDG_DeInit(void);
# J! c& k9 [' D; b* n - $ |7 G% a: k6 ^9 ?& [% [3 L6 n( D; x
- /* Prescaler, Refresh window and Counter configuration functions **************/! R( x9 K% Q6 K6 a7 N! J
- void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);" I/ g4 H& c- H6 U. V/ q+ U
- void WWDG_SetWindowValue(uint8_t WindowValue); O6 Q8 \2 |# K7 W6 w( J
- void WWDG_EnableIT(void);/ E9 W" q3 U+ B5 E# k% e
- void WWDG_SetCounter(uint8_t Counter);
3 d# _' J" R( Y
$ g- M1 ^* _; I3 {& n/ m) o9 {6 g- /* WWDG activation function ***************************************************/5 ^! y) {% d' z: Y" w1 r
- void WWDG_Enable(uint8_t Counter);! g1 b" R8 Y) |; @# a
- . M. K+ q! d( F* L; w. ~
- /* Interrupts and flags management functions **********************************/
( c0 } m: g( l" T: I7 F - FlagStatus WWDG_GetFlagStatus(void);, B) |1 y& A# o- c
- void WWDG_ClearFlag(void);
复制代码 : M: y# b% S3 K# M
04. 结构体封装
+ M- W4 a" l5 E- /** ; E$ U2 e( e1 Z' F, [
- * @brief Window WATCHDOG5 V2 M- l/ V: J4 x
- */
% V a& g! W- B7 `/ r - ! r4 U/ m- g: ~ |/ O
- typedef struct
4 n) N+ A9 g1 [) S. m; Z1 u - {! V9 E: P3 Z+ k8 E+ d& T
- __IO uint32_t CR; /*!< WWDG Control register, Address offset: 0x00 */, P+ ?( A1 k3 Y$ ]2 d3 n; Y" R5 ?
- __IO uint32_t CFR; /*!< WWDG Configuration register, Address offset: 0x04 */
, c8 x8 J8 I* K% A1 t6 u: h - __IO uint32_t SR; /*!< WWDG Status register, Address offset: 0x08 */# t# \6 T, m. C
- } WWDG_TypeDef;
复制代码
. F8 W6 j Q: Z8 L8 V% g( x+ H; @: Y6 W' n
- V* Q& F( g/ v( U
|