[APM32E0] APM32E030的WWDT驱动

[复制链接]
452|6
口天土立口 发表于 2025-9-6 20:00 | 显示全部楼层 |阅读模式
ST, , ID, PE,
本帖最后由 口天土立口 于 2025-9-7 18:35 编辑

2705868bc223b9dd23.png

APM32E030拥有一个窗口看门狗,此看门狗的喂狗时间必须在设计的窗口期内,早于窗口期或者晚于窗口期都将产生复位。

驱动代码如下:
  1. /*
  2. * @brief       WWDT初始化
  3. *
  4. * @param       is_debug_stop: 调试是否停止
  5. *
  6. * @retval      None
  7. *
  8. */
  9. void bsp_wwdt_init(uint8_t is_debug_stop)
  10. {
  11.     /* 调试时看门狗计数器是否停止工作 */
  12.     RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_DBGMCU);
  13.     if (is_debug_stop != 0) {
  14.         DBG_EnableAPB1Periph(DBG_APB1_PER_WWDT_STOP);
  15.     } else {
  16.         DBG_DisableAPB1Periph(DBG_APB1_PER_WWDT_STOP);
  17.     }
  18.    
  19.     RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_WWDT);
  20.     WWDT_SetTimebase(WWDT_DIV_1);
  21.     WWDT_ConfigWindowValue(0x7F);
  22.     WWDT_EnableEWI();
  23.     WWDT_Enable(0xFF);   
  24.    
  25.     NVIC_EnableIRQ(WWDT_IRQn);
  26.     NVIC_SetPriority(WWDT_IRQn, 0);
  27. }
  1. /*
  2. * @brief       WWDT喂狗
  3. *
  4. * @param       None
  5. *
  6. * @retval      None
  7. *
  8. */
  9. void bsp_wwdt_feed(void)
  10. {
  11.     WWDT_ConfigCounter(0xFF);
  12. }

  13. void WWDT_IRQHandler(void)
  14. {
  15.     if (WWDT_ReadStatusFlag()) {
  16.         bsp_wwdt_feed();
  17.         WWDT_ClearStatusFlag();
  18.     }
  19. }


测试代码如下:
  1. // 应用初始化
  2. void app_init(void)
  3. {
  4.     bsp_wwdt_init(1);
  5. }

  6. // 应用任务
  7. void app_task(void)
  8. {
  9. }


详细代码,请查看附件!
WWDT.zip (2.05 MB, 下载次数: 0)
6528668bbf81b12aac.png
8586968bbf8c233e56.png
幻影书记 发表于 2025-9-8 14:17 | 显示全部楼层
帖子的内容上看窗口看门狗要求很严格,但代码上看和IWDT几乎一样
 楼主| 口天土立口 发表于 2025-9-8 19:36 | 显示全部楼层
幻影书记 发表于 2025-9-8 14:17
帖子的内容上看窗口看门狗要求很严格,但代码上看和IWDT几乎一样

主要是喂狗上要求更严格,同时时钟源不一样
暖心小太阳 发表于 2025-9-12 20:39 | 显示全部楼层
如果喂狗失败,系统会如何响应?
幻影书记 发表于 2025-9-23 23:38 | 显示全部楼层
时钟源的事情还真没有注意到。
谢谢楼主
破晓战神 发表于 2025-9-28 20:33 | 显示全部楼层
我注意到你设置了窗口值为0x7F,这个值是如何确定的?是基于什么考虑?
彩虹捕手 发表于 2025-9-30 21:05 | 显示全部楼层
喂狗函数`bsp_wwdt_feed`的实现很简洁,直接重置了看门狗的计数器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部