历史上的今天
今天是:2024年11月16日(星期六)
2019年11月16日 | STM32 HAL库学习系列第11篇---定时器TIM---看门狗基本配置及使用
2019-11-16 来源:eefocus
基本配置
使用cube配置溢出时间
记住准时喂狗
独立看门狗:
/* IWDG 1s 超时溢出 */
MX_IWDG_Init(IWDG_PRESCALER_64,625);
/* 启动独立看门狗 */
HAL_IWDG_Start(&hiwdg);
LED1_ON;
/* while部分是我们在项目中具体需要写的代码,这部分的程序可以用独立看门狗来监控 * 如果我们知道这部
分代码的执行时间,比如是50ms,那么我们可以设置独立看门狗的 * 溢出时间是60ms,比50ms多一点,
如果要被监控的程序没有跑飞正常执行的话,那么 * 执行完毕之后就会执行喂狗的程序,如果程序跑飞
了那程序就会超时,到达不了喂狗的程序 * 此时就会产生系统复位。但是也不排除程序跑飞了又跑回来
了,刚好喂狗了,歪打正着。 * 所以要想更精确的监控程序,可以使用窗口看门狗,窗口看门狗规定必
须在规定的窗口时间内喂狗。 */
while(1)
{
/* 这里添加需要被监控的代码,如果有就去掉按键模拟喂狗,把按键扫描程序去掉 */
/*------------------------------------------------------------------------*/
if( KEY1_StateRead() == KEY_DOWN )
{
/*喂狗,如果不喂狗,系统则会复位,LD1则会灭一次,如果在1s
时间内准时喂狗的话,则LED1会常亮 */
HAL_IWDG_Refresh(&hiwdg);
}
}
窗口看门狗
不同之处是:
1)独立看门狗没有中断,窗口看门狗有中断
2)独立看门狗有硬件软件之分,窗口看门狗只能软件控制
3)独立看门狗只有下限,窗口看门狗又下限和上限
4)独立看门狗是12位递减的。窗口看门狗是7位递减的
5)独立看门狗是用的内部的大约40KHZ RC振荡器,窗口看门狗是用的系统时钟APB1ENR
/* 初始化 WWDG */
MX_WWDG_Init(0X7F, 0X5F, WWDG_PRESCALER_8);
HAL_WWDG_Start(&hwwdg);//函数配置略微不同
/* 窗口值我们在初始化的时候设置成0X5F,这个值不会改变 */
wwdg_wr = WWDG->CFR & 0X7F;
while(1)
{
LED1_OFF;
/*-----------------------------------------------------
* 这部分应该写需要被WWDG监控的程序,这段程序运行的时间
* 决定了窗口值应该设置成多大。
* -----------------------------------------------------
* 计时器值,初始化成最大0X7F,当开启WWDG时候,这个值会不断减小
* 当计数器的值大于窗口值时喂狗的话,会复位,当计数器减少到0X40
* 还没有喂狗的话就非常非常危险了,计数器再减一次到了0X3F时就复位
* 所以要当计数器的值在窗口值和0X40之间的时候喂狗,其中0X40是固定的。
*/
wwdg_tr = WWDG->CR & 0X7F;
if( wwdg_tr < wwdg_wr )
{
/* 喂狗,重新设置计数器的值为最大0X7F */
HAL_WWDG_Refresh(&hwwdg,0X7F);
}
}
史海拾趣
|
1、如何选择PCB板材? 选择PCB板材必须在满足设计需求和可量产性及成本中间取得平衡点。设计需求包含电气和 机构这两部分。通常在设计非常高速的PCB板子(大于GHz的频率)时这材质问题会比较重要。 例如,现在常用的FR-4材质,在几个GHz的频率时 ...… 查看全部问答> |
|
调了好长时间的OTG的HOST功能. 现在有点眉目,但是如何判断HOST功能已经正常了? 现在U盘插上去后,灯闪了一下就灭了. 打印消息说, 已探测到外部设备插入,而且识别了设备的速度,然后就等待port的状态变化... 这种现象正常吗? 我 ...… 查看全部问答> |
|
现有两个WINCE下驱动项目外包: 1、S3C2416下驱动16C554多串口芯片的驱动程序 2、S3C2416的声音驱动(芯片的驱动代码有2442平台下的可以做参考) 有意者请加QQ嵌入式外包群:48348107 谢谢各位!… 查看全部问答> |
|
现在我用的是网口调试,经常出现下了一半就下不下去了 重起一次机器就好了 这样用就太不稳定了 想用USB的方法进行在线调试 但不知道怎么下手 麻烦各位大侠指点指点了 小女子先谢谢了哈… 查看全部问答> |
|
看到许多朋友抱怨LPC17xx的资料难找,发一套全套示例代码 这是一套基于LPC17XX各个模块的示例代码,开发环境是基于KEIL MDK的,我现在用LPC1756做开发,也是初次接触。 这套资料还比较齐全,给了我不少帮助,希望对你们有用。… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 04:02 编辑 2011年的国赛题目已经出来了。我大致看了一下,今年的题目大致可以分为四类,比以前分的类要少。下面大致说一下个人的理解。 今年的题目大致可分为四类:电源类、控制类、放大类、仪器仪表类。其中 ...… 查看全部问答> |




