完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
刚开始使用WWDG。用其他方法喂狗成功了,尝试通过中断喂狗失败:
使用tiMER2设置中断,发生中断时,设置标志。 主函数while检测到标志,清除标志,喂狗。 然后就失败了。 现在发现,开了狗,就进不去中断了,所以失败。想不通为什么狗会导致中断失败? 关了狗,中断正常。 不用中断,在while中延迟相等时间,喂狗成功。 |
|
相关推荐
11个回答
|
|
顶起来……
|
|
|
|
本帖最后由 xmshao 于 2016-3-9 11:37 编辑
如果你定时时间长于WWDG的窗口时间,那定时器永远等不到溢出就被复位了。 你说 “不用中断,在while中延迟相等时间,喂狗成功” 确信不是误会?这个相等时间是跟定时器的时间还是看门狗的窗口时间? |
|
|
|
喂狗的窗口时间是64.17ms~87.38ms delay 70ms成功喂狗,定时70失败。关掉狗,发现定时确实是70ms |
|
|
|
感觉好像是stm32的问题,开启定时器会先进入一次中断,然后导致提前喂狗 |
|
|
|
终于找到了。
STM32在开启中断前,TIMx_SR的UIF就置1了,所以一开启中断立即就会先进入一次中断,从而导致了提前喂狗。 解决办法就是在开启中断前先把UIF位置0. |
|
|
|
建议不要在中断中喂狗,这样别的程序死掉的时候,喂狗还是会继续,导致程序不能复位。
|
|
|
|
你提到的定时器开启就进入中断跟配置有点关系,有些情况下有这个问题。 多数时候可能对应用没啥影响可能就忽视了。 不过你这个问题,应该说参数配置有待琢磨。 http://mp.weixin.qq.com/s?__biz= ... 78657eeb2d655020#rd STM32 定时器有时一开启就进中断的话题 |
|
|
|
直接在中断中喂狗是的。但是我是在中断中设置标志,然后在主函数中判断以后再喂狗,应该没问题吧? |
|
|
|
哈哈哈,你也是二姨和这边两边都上啊 |
|
|
|
嗯,解决了我另外一篇帖子的问题 |
|
|
|
可以一直调用喂狗函数,喂狗里面加个时间判断。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1359 浏览 0 评论
国产NSI1300D05-DSWVR放大芯片放大增益8.2或41的问题
1337 浏览 0 评论
STM32串口接受中断使用C++STL中的queue导致所有中断失效
8887 浏览 1 评论
3624 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1565 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 12:45 , Processed in 0.679555 second(s), Total 60, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191