找回密码
 立即注册
查看: 831|回复: 8

24M主频的STC8HK08看门狗设置256分频,一秒甚至500毫秒都会复位,用的40ms才行

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-09-11 17:08:14

22

主题

38

回帖

419

积分

中级会员

积分
419
发表于 2024-7-10 09:20:53 | 显示全部楼层 |阅读模式
理论上溢出时间是4秒左右,我不管是1s还是500ms喂一次都不会触发喂狗才对
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-09-13 08:52:59

33

主题

2544

回帖

5535

积分

论坛元老

积分
5535
发表于 2024-7-10 09:34:08 | 显示全部楼层
本帖最后由 _奶咖君_ 于 2024-7-10 09:35 编辑

感觉可能是用法有问题,,,,,,下载的时候是否勾选了硬件开启看门狗?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-09-11 17:08:14

22

主题

38

回帖

419

积分

中级会员

积分
419
发表于 2024-7-10 09:37:01 | 显示全部楼层
_奶*** 发表于 2024-7-10 09:34
感觉可能是用法有问题,,,
看门狗的用的不是主频,是一个内部的时钟,,
还有一件事,,下载的时候是否勾 ...

看门狗好像用的就是主频吧,我记得之前有看过相关的解释,下载的时候没有勾选硬件开启
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-09-13 08:52:59

33

主题

2544

回帖

5535

积分

论坛元老

积分
5535
发表于 2024-7-10 09:42:01 | 显示全部楼层
Mike*** 发表于 2024-7-10 09:37
看门狗好像用的就是主频吧,我记得之前有看过相关的解释,下载的时候没有勾选硬件开启 ...

记错了,,,看了一眼手册 。想起来了
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-09-13 08:52:59

33

主题

2544

回帖

5535

积分

论坛元老

积分
5535
发表于 2024-7-10 09:42:52 | 显示全部楼层
Mike*** 发表于 2024-7-10 09:37
看门狗好像用的就是主频吧,我记得之前有看过相关的解释,下载的时候没有勾选硬件开启 ...

感觉是分频系数有问题,,在检查你的代码吧
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-09-11 17:08:14

22

主题

38

回帖

419

积分

中级会员

积分
419
发表于 2024-7-10 10:01:40 | 显示全部楼层
_奶*** 发表于 2024-7-10 09:42
感觉是分频系数有问题,,在检查你的代码吧

WDT_InitTypeDef WDT_InitStructure;

    // Configure the WDT to be enabled or disabled
    WDT_InitStructure.WDT_Enable    = ENABLE;           // Interrupt enable   ENABLE or DISABLE
    // Configure the WDT to stop counting during CPU idle
    WDT_InitStructure.WDT_IDLE_Mode = WDT_IDLE_STOP;    // IDLE mode Indicates whether to stop counting                        WDT_IDLE_STOP,WDT_IDLE_RUN
    // Set the clock division factor of the WDT, determining the timeout period
    WDT_InitStructure.WDT_PS        = WDT_SCALE_256;            // Watchdog timer clock frequency division factor                WDT_SCALE_2,WDT_SCALE_4,WDT_SCALE_8,WDT_SCALE_16,WDT_SCALE_32,WDT_SCALE_64,WDT_SCALE_128,WDT_SCALE_256
    // Initialize the WDT with the configured parameters
    WDT_Inilize(&WDT_InitStructure);                    // initialize
用的库函数开发,就一个分频系数改了,外界一个任务在定时跑喂狗
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-09-13 08:52:59

33

主题

2544

回帖

5535

积分

论坛元老

积分
5535
发表于 2024-7-10 10:29:44 | 显示全部楼层
本帖最后由 _奶咖君_ 于 2024-7-10 10:31 编辑
Mike*** 发表于 2024-7-10 10:01
WDT_InitTypeDef WDT_InitStructure;

    // Configure the WDT to be enabled or disabled

喂狗呢?感觉应该不会 ,库函数啊,喂狗的时候吧分频值改了?

喂狗的源代码看过么?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-09-11 17:08:14

22

主题

38

回帖

419

积分

中级会员

积分
419
发表于 2024-7-10 10:38:21 | 显示全部楼层
_奶*** 发表于 2024-7-10 10:29
喂狗呢?感觉应该不会 ,库函数啊,喂狗的时候吧分频值改了?

喂狗的源代码看过么?

这个提醒到我了 我看了一下喂狗的底层,有关于分频的定义,前面没注意这块默认是16分频,现在改了,应该是这个问题导致的,我验证一下
void WDT_Feed (void)
{
        WDT_CONTR = (D_EN_WDT + D_CLR_WDT + D_WDT_SCALE_256);    // feed the dog
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-09-13 08:52:59

33

主题

2544

回帖

5535

积分

论坛元老

积分
5535
发表于 2024-7-10 10:40:59 | 显示全部楼层
这库函数代码写的真不咋地,, 慎用吧
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-14 14:57 , Processed in 0.150462 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表