历史上的今天
返回首页

历史上的今天

今天是:2024年09月29日(星期日)

正在发生

2018年09月29日 | STM32f4独立看门狗实验代码

2018-09-29 来源:eefocus

iwdg.c里面的代码如下:

#include "iwdg.h"

//初始化独立看门狗

//prer:分频数:0~7(只有低 3位有效!)     rlr:自动重装载值,0~0XFFF.

//分频因子=4*2^prer.但最大值只能是256!

//rlr:重装载寄存器值:低11位有效.

//时间计算(大概):Tout=((4*2^prer)*rlr)/32 (ms).

void IWDG_Init(u8 prer,u16 rlr)

{

  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消寄存器写保护

  IWDG_SetPrescaler(prer); //设置 IWDG分频系数

  IWDG_SetReload(rlr);   //设置IWDG装载值

  IWDG_ReloadCounter(); //reload

  IWDG_Enable();       //使能看门狗

}

//喂独立看门狗

void IWDG_Feed(void)

{

  IWDG_ReloadCounter();//reload

}

该代码就 2个函数,void IWDG_Init(u8 prer,u16 rlr)是独立看门狗初始化函数,就是按照上面介绍的步骤来初始化独立看门狗的。该函数有2 个参数,分别用来设置预分频数与重装载寄存器的值的。通过这两个参数,就可以大概知道看门狗复位的时间周期为多少了。其计算方式上面有详细的介绍,这里不再多说了。

void IWDG_Feed(void)函数,该函数用来喂狗,因为STM32的喂狗只需要向关键字寄存器写入 0XAAAA 即可,也就是调用库函数 IWDG_ReloadCounter(),所以这个函数也是很简单的。 

iwdg.h 内容比较简单,主要是一些函数申明,这里我们忽略不讲解。

接下来我们看看主函数,主程序里面我们先初始化一下系统代码,然后启动按键输入和看门狗,在看门狗开启后马上点亮 LED0(DS0) ,并进入死循环等待按键的输入,一旦 KEY_UP有按键,则喂狗,否则等待IWDG 复位的到来。该部分代码如下:

int main(void)

{  

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2

  delay_init(168);  //初始化延时函数

  LED_Init();        //初始化 LED 端口

  KEY_Init();         //初始化按键

     delay_ms(100);    //延时 100ms  

  IWDG_Init(4,500); //与分频数为 64,重载值为500,溢出时间为1s  

  LED0=0;            //先点亮红灯

  while(1)

  {

    if(KEY_Scan(0)==WKUP_PRES)//如果WK_UP 按下,则喂狗

    {

      IWDG_Feed();//喂狗

    }

    delay_ms(10);

  };

 

}

上面的代码,鉴于篇幅考虑,我们没有把头文件给列出来(后续实例将会采用类同的方式处理) ,因为以后我们包含的头文件会越来越多,大家想看,可以直接打开光盘相关源码查看。至此,独立看门狗的实验代码,我们就全部编写完了,接着要做的就是下载验证了,看看我们的代码是否真的正确。


推荐阅读

史海拾趣

Chino-Excel公司的发展小趣事

Chino-Excel公司最初是一家小型电子元件供应商,凭借对技术创新的执着追求,逐渐在市场中崭露头角。公司研发团队不断突破技术瓶颈,开发出性能更优越、成本更低的电子元器件。随着产品质量的提升和市场份额的扩大,Chino-Excel公司逐渐从众多竞争者中脱颖而出,成为行业内备受瞩目的新星。

AITSEMI公司的发展小趣事

为了进一步提升竞争力,AITSEMI公司积极寻求与产业链上下游企业的战略合作。通过与晶圆制造、封装测试等环节的领军企业建立紧密的合作关系,AITSEMI不仅确保了稳定的供应链和优质的产品质量,还成功实现了产业链的垂直整合,为公司的长远发展奠定了坚实的基础。

COILCRAFT公司的发展小趣事

多年来,COILCRAFT公司凭借其卓越的产品质量、创新能力和良好的服务赢得了广泛的赞誉。在电子行业中,COILCRAFT已经成为高性能磁性元件设计、制造和分销领域的知名品牌。许多知名企业都选择与其合作,共同推动电子行业的发展。同时,COILCRAFT还积极参与行业交流和合作,为推动行业的进步贡献自己的力量。

以上这些故事只是COILCRAFT公司发展历程中的一部分,它们共同展示了这家公司在电子行业中的成长与壮大。未来,随着科技的不断发展和市场需求的不断变化,COILCRAFT将继续保持创新精神,为客户提供更优质的产品和服务。

High Voltage Semiconductor Inc公司的发展小趣事

美高测的起源可以追溯到上世纪80年代末,当时电力工程师斯坦利·珀希尔(虚构对应美高测创始人)在父亲的高压设备公司中工作,积累了深厚的高压测试技术经验。1992年,他带着对高压测试技术的深刻理解,从Hipotronics公司独立出来,创立了美高测。公司初期便专注于研发更高效、更安全的高压测试设备,特别是在交流串联谐振技术和C低频技术上的突破,为公司在高压半导体测试领域奠定了坚实的基础。

Abundance Enterprise Company公司的发展小趣事

随着电子行业的快速发展,Abundance Enterprise Company不断追求技术创新和产品升级。公司投入大量研发资源,成功开发出一系列具有自主知识产权的新型电子元器件,不仅提高了产品的性能和质量,还降低了生产成本。这些创新产品在市场上获得了广泛认可,为公司的快速发展提供了强有力的支撑。

CST Master Electronic Co Ltd公司的发展小趣事

在国内市场取得一定成绩后,CST Master决定进军国际市场。然而,国际市场的竞争更加激烈,法律法规和文化差异也给公司带来了不小的挑战。公司积极调整市场策略,加强与当地合作伙伴的合作,逐步打开了国际市场的大门。通过不断的努力,CST Master在国际市场上也取得了一定的份额。

问答坊 | AI 解惑

NI MeasurementStudio免费培训课程诚邀您参与

NI Measurement Studio是National Instruments(美国国家仪器有限公司)为Microsoft Visual Studio 2008/2005/.NET 2003和Visual Studio 6.0环境所开发出的一款集成式套件, 包括各种类别的测试、测量与自动化应用的控件。Measurement Studio针对 ...…

查看全部问答>

WINCE 中怎样支持俄语界面

我在setting中选择了俄语但是显示还是英语,  在网上找了很多都没答案啊…

查看全部问答>

求quartus11的破解版啊

版本越新越好 链个地址吧,最好有安装教程。 小女子多谢…

查看全部问答>

请问有需要CSR BlueLab蓝牙开发资料、SPI仿真器(SPI下载器)的吗?

你需要CSR 蓝牙开发的SPI仿真头(下载线)的吗? 具有UART-232转接口、复位键、HOLD键、 兼容1.8V  I/O口,串口收发可以倒换或短接,面积小巧、使用方便。 支持CSR的BlueLab、BlueSuite等工具。 联系 13261620407…

查看全部问答>

如何用c51实现占空比可调的方波

用c语言如何写单片机,使p1^0输出占空比可调的方波…

查看全部问答>

linux 2.6 USB的自动挂载问题

  嵌入式开发,要对USB设备进行管理。在linux 2.4 下插入USB设备可以从系统配置文件/proc/scsi/usb-storage*/* 中读出USB设备的插入状态,该文件最好一行Attached为yes就是已经插上USB设备了,若为no就是没有插上。现在linux 2.6下,并没 ...…

查看全部问答>

DCM 和CCM还是未分清

在开关电源设计中,电流控制模式中有的用DCM模式有的用CCM模式,想问一下,在设计一个电路前,怎么选择这两种模式呢?也就是说为什么有的电路选择DCM,而有的电路选择CCM; 看过一些档案材料;DCM与ccm确实有一些差异,CCM能储存更多的能量; 然后 ...…

查看全部问答>

【连载】【ALIENTEK MiniSTM32 开发板】STM32不完全手册--按键输入实验(实验二)

ALIENTEK开发板购买地址:http://shop62103354.taobao.com/   [ 本帖最后由 正点原子 于 2010-8-30 09:35 编辑 ]…

查看全部问答>