你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 独立看门狗相关函数和类型

[复制链接]
STMCU小助手 发布时间:2022-4-1 15:19
01. IWDG概述1 s8 Y: S8 i4 l* D. t# U
stm32f4xx_iwdg.h和stm32f4xx_iwdg.c文件中+ Q4 q7 `5 r# r1 s8 u& a
( |9 W' ^  |7 a6 E+ D
02. 相关类型7 k1 v/ m6 o+ O/ z  a( s
IWDG_WriteAccess
  1. /** @defgroup IWDG_WriteAccess6 V! U; |  R* C9 b: T6 F
  2.   * @{
    $ O7 e% D/ E4 K7 l6 v
  3.   */1 a. p8 R  h7 _5 f$ Q# }9 Z
  4. #define IWDG_WriteAccess_Enable     ((uint16_t)0x5555)
    4 q* Z! n# l3 K
  5. #define IWDG_WriteAccess_Disable    ((uint16_t)0x0000)
    3 b+ A+ m+ s/ g0 p7 w; B. R5 x3 t
  6. #define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \, l' X$ o3 i2 z  v1 F! E( A
  7.                                       ((ACCESS) == IWDG_WriteAccess_Disable))
复制代码

" u* g/ q) u8 w5 c, Z- tIWDG_prescaler6 f. A0 B, o& N$ D) m) q

8 S; j  C+ w( D( t# h
  1. /** @defgroup IWDG_prescaler
    ! W7 `# V2 M: t' B
  2.   * @{% Z4 L% L6 N# U3 o7 p
  3.   */
    2 d; R0 i, y2 M" U0 L; J
  4. #define IWDG_Prescaler_4            ((uint8_t)0x00)3 t& i" h% }7 X9 \  G8 c
  5. #define IWDG_Prescaler_8            ((uint8_t)0x01)
    3 z# ?# h3 z. x+ o9 b
  6. #define IWDG_Prescaler_16           ((uint8_t)0x02)* C( \* X2 w# H3 `* x7 U5 V
  7. #define IWDG_Prescaler_32           ((uint8_t)0x03)
    + Z. F" j5 z$ B- Y% L- S5 y$ I
  8. #define IWDG_Prescaler_64           ((uint8_t)0x04)1 E, U% H4 a% ~# c8 i; J4 |5 F
  9. #define IWDG_Prescaler_128          ((uint8_t)0x05); [9 H4 [/ i8 i( r. u6 }2 x6 q
  10. #define IWDG_Prescaler_256          ((uint8_t)0x06)
    . z7 ^3 F6 |8 y( s
  11. #define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4)  || \5 R- r& J! F" m* W( s% l! _3 U
  12.                                       ((PRESCALER) == IWDG_Prescaler_8)  || \
    - L, {, P2 |% X& O: @6 \/ Z$ r
  13.                                       ((PRESCALER) == IWDG_Prescaler_16) || \
    8 J. c/ ~* F) o& T. x) c) F
  14.                                       ((PRESCALER) == IWDG_Prescaler_32) || \
    " F$ l. X7 S' k
  15.                                       ((PRESCALER) == IWDG_Prescaler_64) || \1 U( ^4 O- ^. u& e+ v
  16.                                       ((PRESCALER) == IWDG_Prescaler_128)|| \
    & S6 V; r& R; [' g: q# v
  17.                                       ((PRESCALER) == IWDG_Prescaler_256))
复制代码
. N7 E6 S; @2 f! }6 N" k. g1 `% B
IWDG_Flag
& F  O& T. Y4 \4 b
! \8 o3 G9 K& Y  c3 d7 y2 S& T! l
  1. /** @defgroup IWDG_Flag
    " p" x/ A5 H- G+ ]/ q( d  A+ ~# C
  2.   * @{
    . ]& s' \, z" |# X; o' `% t
  3.   */8 M) H3 H7 B! ~. g( @2 [+ h
  4. #define IWDG_FLAG_PVU               ((uint16_t)0x0001)
    0 {- [4 ?. }* u; |' w6 h" M# D
  5. #define IWDG_FLAG_RVU               ((uint16_t)0x0002); _2 F; T1 r7 m; F5 i) a2 h
  6. #define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU))
    - w" v! e# Y3 K" y0 x. F
  7. #define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF)
复制代码
9 i; M6 Q& `9 i5 x" @) k" L) S: }
03. 相关函数8 v6 D- b9 }, u, |
  1. /* Exported macro ------------------------------------------------------------*/
    ; Z* h8 r! a7 j/ O$ h. M3 y8 J8 ~
  2. /* Exported functions --------------------------------------------------------*/
    - o+ C8 U4 `- q7 [- C7 x: x
  3. : a! F& Z' n+ k
  4. /* Prescaler and Counter configuration functions ******************************/# N- C: m, _  {: }3 X# I: K
  5. void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);& U" u, O# K' F
  6. void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
    4 H* }% y. t/ q; F" A7 N5 c
  7. void IWDG_SetReload(uint16_t Reload);+ m$ X; i2 _( m5 c" U1 |
  8. void IWDG_ReloadCounter(void);
    * f2 j; w/ M) I: R* ~; v

  9. : ~6 [5 P; p. E2 e: x6 ]
  10. /* IWDG activation function ***************************************************/
    ! ~  y# G% g' ^2 G& o
  11. void IWDG_Enable(void);
    ; a; X# ?0 |5 W: t+ E, t

  12. 2 Y) o& c2 Z7 R6 m7 h  ~, A
  13. /* Flag management function ***************************************************/, ]' T! x1 ~+ I8 z0 e
  14. FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
复制代码
: P- \+ S" _8 x' V1 l( |. w/ l4 ~' ]
04. 结构体封装
# O% x& I3 N4 i1 A& U
  1. /** : b) p/ ~5 P% T0 k7 }' U
  2.   * @brief Independent WATCHDOG
    2 h: h; o5 ~' `& _6 A+ r% t9 o
  3.   */
      s/ e, C& h* Y% P$ a) f

  4. ; [6 I4 a  q! G
  5. typedef struct5 Y# T; }9 d( f* R
  6. {' l( x  i9 r( m# x( ]
  7.   __IO uint32_t KR;   /*!< IWDG Key register,       Address offset: 0x00 */& r4 \0 v0 h5 a
  8.   __IO uint32_t PR;   /*!< IWDG Prescaler register, Address offset: 0x04 */
    + K" K) A, K' w+ r
  9.   __IO uint32_t RLR;  /*!< IWDG Reload register,    Address offset: 0x08 */
    - k" c8 G4 n1 s6 ^% R( Q
  10.   __IO uint32_t SR;   /*!< IWDG Status register,    Address offset: 0x0C */; ^0 {1 c9 {. {# U. [
  11. } IWDG_TypeDef;
复制代码
3 C9 x: \$ \% |+ ^  u
收藏 评论0 发布时间:2022-4-1 15:19

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版