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

请教下,使用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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版