历史上的今天
返回首页

历史上的今天

今天是: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);

        }

    }


推荐阅读

史海拾趣

Electronic公司的发展小趣事

特斯拉,虽然是一家电动汽车公司,但其在电子行业的发展中也展现出了强大的跨界创新能力。特斯拉通过自主研发和生产电池、电机等核心零部件,成功将电动汽车的性能和品质提升到了新的高度。同时,特斯拉还积极探索自动驾驶、智能交通等前沿技术,不断推动电动汽车行业的变革和发展。特斯拉的跨界创新不仅颠覆了传统汽车行业的格局,也为电子行业带来了新的机遇和挑战。

请注意,以上故事框架仅供参考,具体细节和数据可能需要根据实际情况进行调整和补充。同时,由于篇幅限制,每个故事的字数可能无法满足500字以上的要求。

Chipcon AS公司的发展小趣事

面对日益激烈的市场竞争,Chipcon AS公司积极寻求与其他企业的技术合作。通过与一家知名的半导体公司建立战略合作关系,双方共同研发了一款具有划时代意义的智能传感器芯片。这款芯片不仅集成了多种传感器功能,还具备高度集成和智能化的特点,为物联网领域的发展提供了有力支持。通过技术合作,Chipcon AS公司不仅提升了自身的技术实力,还拓展了市场份额。

Auris公司的发展小趣事

2019年,强生公司以34亿美元的价格收购了Auris Health。这次收购对于双方来说都具有重要意义。对于Auris而言,它获得了强大的资金支持和市场资源,有助于加速其产品的市场推广和技术研发。对于强生来说,它借此机会获得了Auris在呼吸道手术和肺癌检测方面的先进技术,进一步巩固了其在医疗领域的领先地位。

Carlisle Interconnect Components公司的发展小趣事

在电子行业快速发展的背景下,Carlisle Interconnect Components公司始终将技术研发和持续创新作为公司发展的核心动力。公司投入大量资源用于研发新型连接器技术,不断推出具有更高性能、更小型化、更智能化的产品。这些创新产品的问世,不仅为公司带来了更多的市场机遇,更推动了整个电子连接器行业的进步。

Hi-G Relays公司的发展小趣事

为了进一步提升公司的竞争力和市场份额,Carlisle Interconnect Components公司积极寻求与产业链上下游企业的战略合作。通过与原材料供应商、设备制造商以及终端客户的紧密合作,公司实现了产业链的整合和优化。这种合作模式不仅降低了公司的生产成本和风险,更提高了产品的质量和交付速度,为公司赢得了更多的竞争优势。

EWC Controls公司的发展小趣事

EWC Controls公司非常重视人才培养和团队建设。公司建立了一套完善的人才培养体系,通过内部培训、外部引进等方式吸引和培养了一批高素质的人才。同时,公司还注重团队合作和文化建设,鼓励员工之间的交流和合作,营造了积极向上的工作氛围。这种人才培养和团队建设的策略为公司的发展提供了有力的保障。

问答坊 | AI 解惑

PCB设计技巧百问(1-10)

1、如何选择PCB板材? 选择PCB板材必须在满足设计需求和可量产性及成本中间取得平衡点。设计需求包含电气和 机构这两部分。通常在设计非常高速的PCB板子(大于GHz的频率)时这材质问题会比较重要。 例如,现在常用的FR-4材质,在几个GHz的频率时 ...…

查看全部问答>

USB CCID

最近在做usb,ccid部分的东西,每次在读入ccid descriptor的内容后电脑就会自动重启,很费解,有哪位朋友做过类似的东西希望能指点一下! 谢谢!…

查看全部问答>

如何判断USB HOST功能正常与否

调了好长时间的OTG的HOST功能. 现在有点眉目,但是如何判断HOST功能已经正常了? 现在U盘插上去后,灯闪了一下就灭了. 打印消息说, 已探测到外部设备插入,而且识别了设备的速度,然后就等待port的状态变化... 这种现象正常吗? 我 ...…

查看全部问答>

WINCE下驱动项目外包

现有两个WINCE下驱动项目外包: 1、S3C2416下驱动16C554多串口芯片的驱动程序 2、S3C2416的声音驱动(芯片的驱动代码有2442平台下的可以做参考) 有意者请加QQ嵌入式外包群:48348107 谢谢各位!…

查看全部问答>

这里挺好

想学点东西这里挺不错的…

查看全部问答>

串口传输的奇怪问题

Hi all 由于使用芯片的升级,公司使用的vxworks(5.4)的BSP包也随之升级,使用的是tornado2.02 现在目标板的bootrom烧进去,可以正常启动 可是不知道为什么,下载vxworks的映像文件的时候常常出错,提示 rpccore target server can\'t decode arg ...…

查看全部问答>

请问EVC能不能用USB口进行下载 在线调试

现在我用的是网口调试,经常出现下了一半就下不下去了 重起一次机器就好了 这样用就太不稳定了 想用USB的方法进行在线调试 但不知道怎么下手 麻烦各位大侠指点指点了 小女子先谢谢了哈…

查看全部问答>

看到许多朋友抱怨LPC17xx的资料难找,发一套全套示例代码

这是一套基于LPC17XX各个模块的示例代码,开发环境是基于KEIL MDK的,我现在用LPC1756做开发,也是初次接触。 这套资料还比较齐全,给了我不少帮助,希望对你们有用。…

查看全部问答>

2011年竞赛题目分析

本帖最后由 paulhyde 于 2014-9-15 04:02 编辑 2011年的国赛题目已经出来了。我大致看了一下,今年的题目大致可以分为四类,比以前分的类要少。下面大致说一下个人的理解。 今年的题目大致可分为四类:电源类、控制类、放大类、仪器仪表类。其中 ...…

查看全部问答>

求个cc2530套件下载地址

求个cc2530套件下载地址,本人装了一个但说应用程序初始化(0xc0000135)失败,不知道怎么解决??求大侠指点,3q…

查看全部问答>