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

请教下,使用stm32L03进入睡眠自动唤醒后看门狗会自动复位

[复制链接]
hpdell 提问时间:2018-7-20 10:34 /
请教下,使用stm32L03进入睡眠自动唤醒后看门狗会自动复位

具体描述如下:

1、 单片机在进入睡眠模式前卫喂一次够,看门狗设定的时间 为 6-8s,单片机的睡眠时间设定的是 5s
     按照这样的时间设置,单片机醒来后,应该是不会重启才对的,每次单片机醒来后又喂了一次够,
    但是还是会重启 ???????

相关代码如下:

#define PRER_VAL    IWDG_PRESCALER_64
#define RLR__VAL    (uint32_t)(625*7)                //目前设置看门狗复位时间为 7s

//初始化
void IWDG_Init(void)
{
        printf("IWDG Init ... ...\r\n");

       IWDG->KR = 0X5555;      //解除寄存器保护        
        IWDG->PR = PRER_VAL;         // 写入初始化分频值
        IWDG->RLR = RLR__VAL;            // 写入自动装载值
        IWDG->KR  = 0XAAAA;     //开启寄存器保护
        IWDG->KR  = 0XCCCC;       //启动看门狗
}

//喂狗
void IWDG_Refresh(void)
{
        IWDG->KR=0XAAAA;  
}

收藏 1 评论2 发布时间:2018-7-20 10:34

举报

2个回答
butterflyspring 回答时间:2018-8-3 10:48:10
三个思路,
1:follow我们参考手册的步骤
2:用我们的例程跑一下,在初始化完成了,打个断点,对比一下和你的寄存器之间的差别.
3:将复位时间和喂狗时间拉长.
D3.JPG

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

hpdell 回答时间:2018-8-3 17:12:11
butterflyspring 发表于 2018-8-3 10:48
三个思路,
1:follow我们参考手册的步骤
2:用我们的例程跑一下,在初始化完成了,打个断点,对比一下和你的寄存 ...

搞定了,原来是 rlr 寄存器的数据超过范围造成的,

之前以为 rlr 是32bit的,但是实际是 13bit的

评分

参与人数 2ST金币 +3 蝴蝶豆 +6 收起 理由
zero99 + 3 结帖奖励
butterflyspring + 3 + 3 漂亮!

查看全部评分

所属标签

相似问题

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