历史上的今天
今天是:2025年08月15日(星期五)
2019年08月15日 | STM32F103看门狗使用记录
2019-08-15 来源:eefocus
看门狗分两种
1.独立看门狗,IWDG
只是简单的设置一个数,然后递减,减到0之前,还没有喂狗,狗就死了,系统重启。
没有中断。只有自己代码里去喂狗。
频率是内部时钟40K,可以分频。
2.窗口看门狗,WWDG
频率是PLCK1 我这是36M最多8分频,然后呢除以4096,就是WWDG的时钟
有个2个值比较重要,
1.一个是窗口值,W,在这个值之前不能喂狗,喂了狗就撑死了,reset。
2.一个是临界值,0x3F到这个值还没喂狗,狗就饿死了,reset。
我也不知道为什么设置是0x3F,挺奇怪的,为什么不设0x00?
WWDG有一个中断函数HAL_WWDG_WakeupCallback,在倒计时到0x40的时候会掉这个,你得赶紧Refresh一下。
这些都是基本的,我搞的时候遇到2个问题:
1.
一个是Hal库版本的问题,HAL库升级到1.6版本后WWDG只有init函数,没有StartIT接口了,不知道是不是Bug,还是ST有新的用法,折腾我半天。后来我退回到1.4版本就OK了,但是新版本的Cube用就版本的HAL库竟然也有Bug,哎。无语。
2.
我自己项目需求是,板子USB通信,然后将内容与I2C进行读写,但是当接线不当的时候(比如没有接GND),I2C会挂掉,Systick不更新,然后就While死循环了,板子也就挂掉了,所以我就用了一个看门狗。
然后我发现就算这样也不行,好像USB的中断级别比WWDG高(在Cube里设的时候是一样都是0),USB当数据量大的时候,只用中断喂狗,来不及,所以特别容易死机。
后来我把窗口值设成126,每次刷新就刷到125,在我自己的逻辑代码里也增加了喂狗程序,然后就OK了。
史海拾趣
|
FPGA应用于很多场合。比如通信,验证,接口控制。 接口比较多,相对多个PLD来说,成本和速度节省。 CH451资料比较多,上网可以下载。 具体分析下怎么用FPGA写这些控制。 :D :D 第一个阅读器件,了解器件初始化过程,以及显示数据具体过程。也 ...… 查看全部问答> |
|
◆选购安防监控录像系统的误区 目前民用级安防监控主要是来源一些小规模的商业需求,相比一些大规模的安防工程,对于监控的线路基本维持在8路以内,自己购买设备便可以进行调试安装。 目前这类民用级监控系统的选 ...… 查看全部问答> |
|
比如 data_led equ 60h .... loop: mov data_led,a inc a jmp loop ... 如何看data_led的变化?在那个窗口可以观察到? 是用那个memeny window吗 那个好像是看rom的窗口 不知道是不是 因为我用那个窗口试过,在0x60h单元中的值总是不会变 ...… 查看全部问答> |
|
如题。 正在学习ARM的开发,采用的是ARM920T的内核。为了进一步熟悉其架构,现想先进行一些简单的开发,比如用汇编调试一下MOV等指令,看看内部寄存器的变化情况,选用JTAG仿真器和AXD进行调试。这个应该算是最简单的入门吧? 现在的问题是,我用 ...… 查看全部问答> |
|
帮我拿个主意!!我最近去了一家培训公司面试,面试的是HP的电话技术支持工程师 400多个人面试,最后通过的就六个人,其中有我一个!!! 通知我明天去复试,是HP亲自面试,各位说我去不去??? 最主要的是这家公司要岗前培训,有费用4800多元 ...… 查看全部问答> |
|
具体情况为: 1、我的ICF文件如下: define symbol __ICFEDIT_intvec_start__ = 0x08000000; define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF; def ...… 查看全部问答> |




