关于窗口看门狗WWDG_CFR寄存器中EWI位的置位问题

2019-10-16 02:22发布

今天学习窗口看门狗例程的时候,看到WWDG_CFR寄存器中的EWI位的功能为:该位 置1会在tr=0x40的时候产生中断。然后可以通过在产生的中断内及时喂狗以避免看门狗复位。但是在程序中找了很久也没能找到EWI是通过什么样的方式置1的,难道在WWDG中断开启后EWI位就默认置1了吗?
本人新手一枚。。。求大神解疑,跪谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
406088008
1楼-- · 2019-10-17 03:20
本帖最后由 406088008 于 2016-11-2 10:15 编辑
liuzixia123 发表于 2016-11-1 21:29
如果在LED1翻转后加个延时300ms,这个延时会管用么


可以加延时,但是300ms太长了(相对于计数器从初始值0x7F减到0x40的时间),会来不及执行喂狗操作,从而使看门狗产生复位。经验证,LED1翻转后加个50ms以内的延时可以使LED1正常闪烁。
liuzixia123
2楼-- · 2019-10-17 03:33
 精彩回答 2  元偷偷看……
那年的阿童木
3楼-- · 2019-10-17 09:16
这个EWI位应该在使能中断的时候就置一,同步的,不需要单独设置
406088008
4楼-- · 2019-10-17 11:21
liuzixia123 发表于 2016-11-2 23:10
谢谢哈,如果窗口值大于计数器值呢?我的总不对

窗口值大于计数器值是正常的吧,这时处于可刷新计数器值的阶段
406088008
5楼-- · 2019-10-17 13:42
那年的阿童木 发表于 2016-11-7 21:07
这个EWI位应该在使能中断的时候就置一,同步的,不需要单独设置

恩恩,对的,当时找了好久才找到了这一句,在使能看门狗中断的函数定义里面
void WWDG_EnableIT(void)
{
  *(__IO uint32_t *) CFR_EWI_BB = (uint32_t)ENABLE;}
ouxili
6楼-- · 2019-10-17 14:47
406088008 发表于 2016-11-12 11:02
恩恩,对的,当时找了好久才找到了这一句,在使能看门狗中断的函数定义里面
void WWDG_EnableIT(void) ...

找到这一句你是怎么对上号的呢?怎样对上中断使能寄存器的位置的能,这句话我推断了一下他的寄存器位置是0x420080A4,但是我没有找到这个寄存器在哪

一周热门 更多>