01. WWDG概述3 y9 B; j" ^( z4 d8 M, e9 s1 s0 [
stm32f4xx_wwdg.h和 stm32f4xx_wwdg.c文件中。; D8 R, U' S# q1 Y; A
' q5 ]& ^! F& I3 f* W" r02. 相关类型4 u; _0 U9 Z6 X1 [" C7 b
WWDG_Prescaler
" z& g+ g' }0 g5 I1 q. \" F& _5 @& r
- /** @defgroup WWDG_Prescaler
. J! k6 c, K; ?# _2 D- N) y - * @{, E" a5 E, L1 T2 e; M
- */3 T" T1 B* {* |+ @1 |/ x4 e
- ; A9 \% u/ ]* p, M7 Z) ^" |* o9 g9 j
- #define WWDG_Prescaler_1 ((uint32_t)0x00000000)( @" O; ?& t% y
- #define WWDG_Prescaler_2 ((uint32_t)0x00000080)0 L+ p8 _6 k, M
- #define WWDG_Prescaler_4 ((uint32_t)0x00000100)
0 \; l" | Q4 [; n - #define WWDG_Prescaler_8 ((uint32_t)0x00000180); S9 l" Q+ q$ F* b
- #define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_Prescaler_1) || \
3 M2 [7 p8 p A - ((PRESCALER) == WWDG_Prescaler_2) || \$ C& u1 V8 I9 M
- ((PRESCALER) == WWDG_Prescaler_4) || \: g7 s' l( w0 ?' L* t- X# H! Z
- ((PRESCALER) == WWDG_Prescaler_8))
3 E# W( @# I) ~% o. [- H - #define IS_WWDG_WINDOW_VALUE(VALUE) ((VALUE) <= 0x7F)
% q# s, b I d1 n; l - #define IS_WWDG_COUNTER(COUNTER) (((COUNTER) >= 0x40) && ((COUNTER) <= 0x7F))
复制代码
: I* ?; I& K& l: c3 m中断处理函数' @* e7 _) d4 I% i) p
2 g/ S3 [2 K3 d% {8 s. u" l4 X1 _+ c- WWDG_IRQn = 0, /*!< Window WatchDog Interrupt*/
复制代码 / t* x! G- N2 B+ }
03. 相关函数
2 r+ n+ w( _4 |" U% [2 U- /* Function used to set the WWDG configuration to the default reset state ****/ 1 {+ {) q% Y$ t, W
- void WWDG_DeInit(void);
- Y! D/ c- K: f6 c - - r* P6 ^ }. \
- /* Prescaler, Refresh window and Counter configuration functions **************/
' w# o# y' ~! w! C# ^5 p - void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
8 `4 ~) q: G$ r - void WWDG_SetWindowValue(uint8_t WindowValue);" \, n; A: K$ ~2 V+ Q: B6 e/ Y
- void WWDG_EnableIT(void);8 G5 @9 Q6 b. m! S% C9 ^1 K; L
- void WWDG_SetCounter(uint8_t Counter);# _: f( w- h/ }) R7 R
/ ~. _5 a' @9 Y: i4 q' h- /* WWDG activation function ***************************************************/( a; k4 A& \- `1 K9 g2 P/ q
- void WWDG_Enable(uint8_t Counter);( r% [7 Y0 |' K; W8 {
2 O; u' D7 q: K) c& t& O- /* Interrupts and flags management functions **********************************/
4 Y. d' q- j- s - FlagStatus WWDG_GetFlagStatus(void);
: t3 [; \* @( n" s; h9 d& M* P - void WWDG_ClearFlag(void);
复制代码 , }# U+ _9 F2 B2 M: H
04. 结构体封装
1 X& f3 V5 |' O0 a5 a- /**
r; ^/ D+ A4 j P6 ~4 p - * @brief Window WATCHDOG' R1 j* I ^: Z, d% |
- */
2 [. o4 F* E5 y. C( n
0 a/ `$ o8 o, B! C2 U- typedef struct0 B1 q( Q8 P' G. h2 I, Q( F
- {6 |! v8 v6 ]; j) _& n! g3 m
- __IO uint32_t CR; /*!< WWDG Control register, Address offset: 0x00 */+ H( C9 G" m/ J! h9 I
- __IO uint32_t CFR; /*!< WWDG Configuration register, Address offset: 0x04 */; E; Y" f1 E' w- {) _: D3 n2 D! X9 W
- __IO uint32_t SR; /*!< WWDG Status register, Address offset: 0x08 *// r! u4 j2 V8 p4 }- [+ ?
- } WWDG_TypeDef;
复制代码 " O2 g* |* I9 p: b
, q$ R: E- a; C' G% b |