STM32
直播中

陈博

13年用户 589经验值
擅长:12268
私信 关注
[问答]

STM32窗口看门狗的结构体该如何去封装呢

STM32窗口看门狗的相关类型有哪些?
STM32窗口看门狗的相关函数有哪些?
STM32窗口看门狗的结构体该如何去封装呢?

回帖(1)

张桂芝

2021-9-16 16:22:40
  1. WWDG概述
  stm32f4xx_wwdg.h和 stm32f4xx_wwdg.c文件中。
  2. 相关类型
  WWDG_Prescaler
  /** @defgroup WWDG_Prescaler
  * @{
  */
  #define WWDG_Prescaler_1 ((uint32_t)0x00000000)
  #define WWDG_Prescaler_2 ((uint32_t)0x00000080)
  #define WWDG_Prescaler_4 ((uint32_t)0x00000100)
  #define WWDG_Prescaler_8 ((uint32_t)0x00000180)
  #define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_Prescaler_1) ||
  ((PRESCALER) == WWDG_Prescaler_2) ||
  ((PRESCALER) == WWDG_Prescaler_4) ||
  ((PRESCALER) == WWDG_Prescaler_8))
  #define IS_WWDG_WINDOW_VALUE(VALUE) ((VALUE) 《= 0x7F)
  #define IS_WWDG_COUNTER(COUNTER) (((COUNTER) 》= 0x40) && ((COUNTER) 《= 0x7F))
  中断处理函数
  WWDG_IRQn = 0, /*!《 Window WatchDog Interrupt*/
  3. 相关函数
  /* Function used to set the WWDG configuration to the default reset state ****/
  void WWDG_DeInit(void);
  /* Prescaler, Refresh window and Counter configuration functions **************/
  void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
  void WWDG_SetWindowValue(uint8_t WindowValue);
  void WWDG_EnableIT(void); void WWDG_SetCounter(uint8_t Counter);
  /* WWDG activation function ***************************************************/
  void WWDG_Enable(uint8_t Counter);
  /* Interrupts and flags management functions **********************************/
  FlagStatus WWDG_GetFlagStatus(void);
  void WWDG_ClearFlag(void);
  4. 结构体封装
  /**
  * @brief Window WATCHDOG
  */
  typedef struct
  {
  __IO uint32_t CR; /*!《 WWDG Control register, Address offset: 0x00 */
  __IO uint32_t CFR; /*!《 WWDG Configuration register, Address offset: 0x04 */
  __IO uint32_t SR; /*!《 WWDG Status register, Address offset: 0x08 */
  } WWDG_TypeDef;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分