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

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

[复制链接]
STMCU小助手 发布时间:2022-4-1 15:19
01. IWDG概述
stm32f4xx_iwdg.h和stm32f4xx_iwdg.c文件中

02. 相关类型
IWDG_WriteAccess
  1. /** @defgroup IWDG_WriteAccess
  2.   * @{
  3.   */
  4. #define IWDG_WriteAccess_Enable     ((uint16_t)0x5555)
  5. #define IWDG_WriteAccess_Disable    ((uint16_t)0x0000)
  6. #define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \
  7.                                       ((ACCESS) == IWDG_WriteAccess_Disable))
复制代码

IWDG_prescaler

  1. /** @defgroup IWDG_prescaler
  2.   * @{
  3.   */
  4. #define IWDG_Prescaler_4            ((uint8_t)0x00)
  5. #define IWDG_Prescaler_8            ((uint8_t)0x01)
  6. #define IWDG_Prescaler_16           ((uint8_t)0x02)
  7. #define IWDG_Prescaler_32           ((uint8_t)0x03)
  8. #define IWDG_Prescaler_64           ((uint8_t)0x04)
  9. #define IWDG_Prescaler_128          ((uint8_t)0x05)
  10. #define IWDG_Prescaler_256          ((uint8_t)0x06)
  11. #define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4)  || \
  12.                                       ((PRESCALER) == IWDG_Prescaler_8)  || \
  13.                                       ((PRESCALER) == IWDG_Prescaler_16) || \
  14.                                       ((PRESCALER) == IWDG_Prescaler_32) || \
  15.                                       ((PRESCALER) == IWDG_Prescaler_64) || \
  16.                                       ((PRESCALER) == IWDG_Prescaler_128)|| \
  17.                                       ((PRESCALER) == IWDG_Prescaler_256))
复制代码

IWDG_Flag

  1. /** @defgroup IWDG_Flag
  2.   * @{
  3.   */
  4. #define IWDG_FLAG_PVU               ((uint16_t)0x0001)
  5. #define IWDG_FLAG_RVU               ((uint16_t)0x0002)
  6. #define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU))
  7. #define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF)
复制代码

03. 相关函数
  1. /* Exported macro ------------------------------------------------------------*/
  2. /* Exported functions --------------------------------------------------------*/

  3. /* Prescaler and Counter configuration functions ******************************/
  4. void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);
  5. void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
  6. void IWDG_SetReload(uint16_t Reload);
  7. void IWDG_ReloadCounter(void);

  8. /* IWDG activation function ***************************************************/
  9. void IWDG_Enable(void);

  10. /* Flag management function ***************************************************/
  11. FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
复制代码

04. 结构体封装
  1. /**
  2.   * @brief Independent WATCHDOG
  3.   */

  4. typedef struct
  5. {
  6.   __IO uint32_t KR;   /*!< IWDG Key register,       Address offset: 0x00 */
  7.   __IO uint32_t PR;   /*!< IWDG Prescaler register, Address offset: 0x04 */
  8.   __IO uint32_t RLR;  /*!< IWDG Reload register,    Address offset: 0x08 */
  9.   __IO uint32_t SR;   /*!< IWDG Status register,    Address offset: 0x0C */
  10. } IWDG_TypeDef;
复制代码

收藏 评论0 发布时间:2022-4-1 15:19

举报

0个回答

所属标签

相似分享

官网相关资源

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