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

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

[复制链接]
STMCU小助手 发布时间:2022-6-13 16:54
01. IWDG概述
, ]* G0 }* D, wstm32f4xx_iwdg.h和stm32f4xx_iwdg.c文件中
$ B) y, i* r4 }. i  ^/ ]
* o: a# j% Z! b6 \$ b! g$ A" v2 s$ f02. 相关类型
( `2 Y3 [: X+ P6 \IWDG_WriteAccess
0 z' I8 I. E% ^2 a# {1 j0 ]& p
0 W7 q% X5 p) c: O* F
  1. /** @defgroup IWDG_WriteAccess
    % P/ G+ s  s9 o- ^: @
  2.   * @{, B5 C- C' z% z
  3.   */2 }' T; ]7 j/ L  E& V& g/ t
  4. #define IWDG_WriteAccess_Enable     ((uint16_t)0x5555)( G( W' e( W# O7 m! i+ T* s; i2 n
  5. #define IWDG_WriteAccess_Disable    ((uint16_t)0x0000)# M0 C# \6 Q; r4 K( b, u  ~
  6. #define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \
    / O" x+ x2 I" @7 A! h; g
  7.                                       ((ACCESS) == IWDG_WriteAccess_Disable))
复制代码

) o! F" k9 J) k8 C, Q* WIWDG_prescaler2 {8 @- J1 s/ t5 Z1 X2 d( C2 P
, g. r3 M5 _9 N) j
  1. /** @defgroup IWDG_prescaler
    3 p8 e/ N4 p/ D2 y6 u
  2.   * @{
      \4 V' |* r4 B2 K9 N: h# b6 |
  3.   */" A) d: l1 Z4 T$ u' T( {9 u" a
  4. #define IWDG_Prescaler_4            ((uint8_t)0x00)
    8 X1 P' n7 S) U, k5 i3 N
  5. #define IWDG_Prescaler_8            ((uint8_t)0x01)
    ( j4 f! l& [( B% U$ X  u
  6. #define IWDG_Prescaler_16           ((uint8_t)0x02)
    2 N2 F: n% b7 {9 g" @
  7. #define IWDG_Prescaler_32           ((uint8_t)0x03). ^) T. }' b. {8 Y# n" s
  8. #define IWDG_Prescaler_64           ((uint8_t)0x04)
    0 E8 y0 i" t. N, p
  9. #define IWDG_Prescaler_128          ((uint8_t)0x05)
    / l& d5 j; [* f1 n1 X
  10. #define IWDG_Prescaler_256          ((uint8_t)0x06)# _4 h. S. i( L( |! k
  11. #define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4)  || \# k6 ^; J& }3 J
  12.                                       ((PRESCALER) == IWDG_Prescaler_8)  || \) i( s1 Y$ J( E- t. v
  13.                                       ((PRESCALER) == IWDG_Prescaler_16) || \
    * e8 W0 e$ o4 j) J; `8 h; V
  14.                                       ((PRESCALER) == IWDG_Prescaler_32) || \$ n6 `) q- T8 q4 X1 T- h; K" @8 q0 o
  15.                                       ((PRESCALER) == IWDG_Prescaler_64) || \6 A9 I" \. R, J2 Y/ N( E% R0 q
  16.                                       ((PRESCALER) == IWDG_Prescaler_128)|| \
    6 z, ~6 r& a& |
  17.                                       ((PRESCALER) == IWDG_Prescaler_256))
复制代码

, D' {/ Y% s% E$ g4 k; EIWDG_Flag8 u" y& o0 l* D
5 f. Y& V# r4 M2 w7 Y- s7 @
  1. /** @defgroup IWDG_Flag
    ( ]* A7 t$ L+ Q& Q1 p
  2.   * @{
    ; i, L, n6 G* u9 f- d. ]
  3.   */
    # m' i# e; W& w
  4. #define IWDG_FLAG_PVU               ((uint16_t)0x0001)' J' v* ~2 n* W$ k# Z
  5. #define IWDG_FLAG_RVU               ((uint16_t)0x0002)( Z: e4 @  @+ n
  6. #define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU))% |$ [* g: g0 T( v
  7. #define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF)
复制代码

3 Y' U& \% F: r2 J, P0 G3 V8 r$ `4 P$ @$ c+ w
03. 相关函数

$ S0 j, S5 W/ V
  1. /* Exported macro ------------------------------------------------------------*/
    . ^* s+ j% {* \; Y4 K
  2. /* Exported functions --------------------------------------------------------*/5 ]! A  j7 b8 J. Q9 O$ m) ^5 f+ `
  3. $ W9 y! @0 J6 G) U
  4. /* Prescaler and Counter configuration functions ******************************/
      H  h; N, J9 U3 o) P
  5. void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);
    - E5 j. J7 e$ T# v8 ?  {* Y
  6. void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
    0 u, O0 s4 C3 c
  7. void IWDG_SetReload(uint16_t Reload);
    1 k, n$ L% g: H
  8. void IWDG_ReloadCounter(void);
    3 f. S$ G% b* v1 m
  9. ( O  E5 h1 B( v; Z
  10. /* IWDG activation function ***************************************************/8 c4 y$ `+ h1 `) [
  11. void IWDG_Enable(void);+ l5 f$ b5 t" r' n2 e

  12. 3 S# O$ N8 d! C. \5 x2 \
  13. /* Flag management function ***************************************************/
    7 j" ~' G, R8 \" X4 z
  14. FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
复制代码

, W3 z* c& P5 H# Y# {( {* D04. 结构体封装
# Y$ W! W. A, L9 H- o; i. I
  1. /** / ^$ ?# v! m7 N* W4 c2 e
  2.   * @brief Independent WATCHDOG) g' s( C+ G( s
  3.   */
    $ B; S5 y5 J0 u+ {5 |) [9 K

  4. , [2 z" m- L" S9 Y) Z+ P
  5. typedef struct3 r1 d/ ]0 K' ~5 l( u
  6. {$ M0 a6 t) u. Z0 d- o
  7.   __IO uint32_t KR;   /*!< IWDG Key register,       Address offset: 0x00 */( G" T! U5 R+ R! }- b
  8.   __IO uint32_t PR;   /*!< IWDG Prescaler register, Address offset: 0x04 */9 m  O4 j, u( {- i  x  z7 W  p
  9.   __IO uint32_t RLR;  /*!< IWDG Reload register,    Address offset: 0x08 */
    2 v" n: q) i* H% h8 f8 `
  10.   __IO uint32_t SR;   /*!< IWDG Status register,    Address offset: 0x0C */8 v, ?* g, O- U( [, C6 S; B8 \0 i
  11. } IWDG_TypeDef;
复制代码
: u3 @: J  b% G7 Y
' h9 V- d* L2 ]* _

: j# i4 k- c2 d
赞 收藏 评论0 发布时间:2022-6-13 16:54

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版