/* * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-15 16:13:37 * @LastEditors : stark1898y 1658608470@qq.com * @LastEditTime : 2025-06-03 14:53:51 * @FilePath : \BLE_TYQ_CH584M\BSP\inc\bsp_iwdg.h * @Description : * * Copyright (c) 2024 by yzy, All Rights Reserved. */ #ifndef __BSP_IWDG_H__ #define __BSP_IWDG_H__ #include "CONFIG.h" #define RB_RLR 0x0FFF // RW, watch-dog counter reload (write protect) #define RB_PR 0x7000 // PR, prescale (write protect) #define RB_PVU 0x8000 // RO, register update flag (write protect) #define RB_COUNT 0xFF0000 // RO, watch-dog down counter #define RB_STOP_EN 0x20000000 // RW, watch-dog stop enable (write protect) #define RB_WR_PROTECT 0x40000000 // RO, write protect #define RB_IWDG_EN 0x80000000 // RO, watch-dog enable #define IWDG_TIMEOUT_MS (7000) #define IWDG_FEED_MS (3000) #define IWIG_FEED_EVENT (0x01 << 0) // #define TMR0_START_EVENT (0x01 << 1) // #define TMR0_END_EVENT (0x01 << 2) void IWDG_Init(uint16_t ms); // 需要定时调用喂狗 // 在看门狗键寄存器 (R32_IWDG_KR) 中,软件要以一定的间隔写入 0xAAAA,重装载计数值,这就是喂狗的操作。 // 否则,当计数器为 0 时,看门狗会产生复位。 #define FEED_IWDG() {R32_IWDG_KR=0xAAAA;} void ShowRestartReason(void); #endif // !__BSP_IWDG_H__