OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6194|回复: 11

求助高手:窗口看门狗APB1时钟分频系数变化使得看门狗不停复位,这块感觉有问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-2-22
在线时间
8 小时
发表于 2017-2-23 08:58:54 | 显示全部楼层 |阅读模式
4金钱
我用的是探索者407开发板,最近一直在调窗口看门狗,采用的是中断喂狗,遇到两个问题:
1、我将例程中断喂狗的程序中的led1翻转的语句注释掉,其他什么都不动,程序会一直复位,即红灯不停地闪烁,这个问题我一直想不通为什么?难道喂狗不能太快!
捕获.PNG
2、例程给的是APB1进行4分频,看门狗进行8分频;我修改了APB1的时钟,对APB1进行8分频,看门狗进行4分频,按道理这样分频看门狗的时钟是不会变的,但是这样改完以后原来的例程会不停地复位,这样解决地办法是LED翻转程序后面加上延时,我延时了20ms,看门狗可以喂狗,程序可以正常运行。我改的地方如下:
修改APB1时钟部分:stm32f4xx.c文件中
捕获.PNG
中断喂狗部分:
捕获.PNG
这两个问题是我百思不得其解,希望原子哥和各位高手帮我看看问题出在哪了???谢谢啦

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-23 20:32:01 | 显示全部楼层
窗口看门狗的东西有点奇葩,你别随便乱改。尤其是中断服务函数里面的,稍有不慎,就不行了。原因我也找不出,你就忍忍吧。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-2-22
在线时间
8 小时
 楼主| 发表于 2017-2-27 14:51:40 | 显示全部楼层
正点原子 发表于 2017-2-23 20:32
窗口看门狗的东西有点奇葩,你别随便乱改。尤其是中断服务函数里面的,稍有不慎,就不行了。原因我也找不出 ...

原子哥,这个窗口看门狗,项目中要用,在ucos系统要用它!只要不影响功能就行?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-27 21:43:59 | 显示全部楼层
松花江畔玩STM32 发表于 2017-2-27 14:51
原子哥,这个窗口看门狗,项目中要用,在ucos系统要用它!只要不影响功能就行?

嗯,可以,直接用我们例程这样,及时喂狗。就OK了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-2-22
在线时间
8 小时
 楼主| 发表于 2017-3-2 10:40:06 | 显示全部楼层
正点原子 发表于 2017-2-27 21:43
嗯,可以,直接用我们例程这样,及时喂狗。就OK了。

可是我还在想为什么中断里屏蔽掉LED翻转这条语句,看门狗会不停的复为;我就担心这块存在隐患
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-3-6 21:01:37 | 显示全部楼层
松花江畔玩STM32 发表于 2017-3-2 10:40
可是我还在想为什么中断里屏蔽掉LED翻转这条语句,看门狗会不停的复为;我就担心这块存在隐患

//窗口看门狗中断服务程序
void WWDG_IRQHandler(void)
{      
        static u8 led1sta=1;
        if(WWDG->SR&0X01)                //先判断是否发生了WWDG提前唤醒中断
        {
                WWDG->SR=0X00;                                //清除提前唤醒中断标志位
                WWDG_Set_Counter(WWDG_CNT);        //重设窗口看门狗的值!         
                LED1(led1sta^=1);                         //LED1闪烁
        }
}

试试这个代码。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-3-14
在线时间
9 小时
发表于 2017-3-23 12:09:12 | 显示全部楼层
正点原子 发表于 2017-2-27 21:43
嗯,可以,直接用我们例程这样,及时喂狗。就OK了。

原子哥 为什么我在main函数里调用了延时1s 在助手上却一直显示中断里的 喂狗了  延时不是1s啊  百思不得其解
回复

使用道具 举报

15

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2017-7-17
在线时间
68 小时
发表于 2018-2-8 09:55:48 | 显示全部楼层
正点原子 发表于 2017-2-27 21:43
嗯,可以,直接用我们例程这样,及时喂狗。就OK了。

在中断中喂狗还能起到看门狗的作用吗?这样不是程序跑飞也不会复位吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-2-19 23:40:19 | 显示全部楼层
开心的人们 发表于 2018-2-8 09:55
在中断中喂狗还能起到看门狗的作用吗?这样不是程序跑飞也不会复位吗?

程序跑飞了,哪里还管你中断?中断都不会执行了!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-12-12
在线时间
10 小时
发表于 2018-4-5 16:47:12 | 显示全部楼层
正点原子 发表于 2018-2-19 23:40
程序跑飞了,哪里还管你中断?中断都不会执行了!

正在学习中,今天恰好也发现了这个问题,
我也很郁闷啊,为什么屏蔽掉LED1 = !LED1 后就一直复位
我加了个延时delay_ms(1)  之后正常运行
请问现在原子哥你知道这个问题的原因了吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-7 02:42:23 | 显示全部楼层
半梦扮醒 发表于 2018-4-5 16:47
正在学习中,今天恰好也发现了这个问题,
我也很郁闷啊,为什么屏蔽掉LED1 = !LED1 后就一直复位
我加 ...

窗口看门狗里面的代码,不要随便改,容易出问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

66

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2018-8-13
在线时间
62 小时
发表于 2018-9-4 10:45:56 | 显示全部楼层
为什么要在窗口中断中喂狗,如在中断中喂狗,就是程序跑飞也不会复位吗?只要窗口计数器一到0X40就执行中断,中断中马上喂狗,那么窗口看门狗就失去意义了,我的意思是正常写程序时不应该在中断中喂狗,中断中写一些故障处理标志。初学,不知是否说的对。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-10 03:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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