历史上的今天
今天是: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);
};
}
上面的代码,鉴于篇幅考虑,我们没有把头文件给列出来(后续实例将会采用类同的方式处理) ,因为以后我们包含的头文件会越来越多,大家想看,可以直接打开光盘相关源码查看。至此,独立看门狗的实验代码,我们就全部编写完了,接着要做的就是下载验证了,看看我们的代码是否真的正确。
上一篇:STM32f4窗口看门狗实验代码
史海拾趣
|
NI MeasurementStudio免费培训课程诚邀您参与 NI Measurement Studio是National Instruments(美国国家仪器有限公司)为Microsoft Visual Studio 2008/2005/.NET 2003和Visual Studio 6.0环境所开发出的一款集成式套件, 包括各种类别的测试、测量与自动化应用的控件。Measurement Studio针对 ...… 查看全部问答> |
|
请问有需要CSR BlueLab蓝牙开发资料、SPI仿真器(SPI下载器)的吗? 你需要CSR 蓝牙开发的SPI仿真头(下载线)的吗? 具有UART-232转接口、复位键、HOLD键、 兼容1.8V I/O口,串口收发可以倒换或短接,面积小巧、使用方便。 支持CSR的BlueLab、BlueSuite等工具。 联系 13261620407… 查看全部问答> |
|
嵌入式开发,要对USB设备进行管理。在linux 2.4 下插入USB设备可以从系统配置文件/proc/scsi/usb-storage*/* 中读出USB设备的插入状态,该文件最好一行Attached为yes就是已经插上USB设备了,若为no就是没有插上。现在linux 2.6下,并没 ...… 查看全部问答> |
|
在开关电源设计中,电流控制模式中有的用DCM模式有的用CCM模式,想问一下,在设计一个电路前,怎么选择这两种模式呢?也就是说为什么有的电路选择DCM,而有的电路选择CCM; 看过一些档案材料;DCM与ccm确实有一些差异,CCM能储存更多的能量; 然后 ...… 查看全部问答> |
|
【连载】【ALIENTEK MiniSTM32 开发板】STM32不完全手册--按键输入实验(实验二) ALIENTEK开发板购买地址:http://shop62103354.taobao.com/ [ 本帖最后由 正点原子 于 2010-8-30 09:35 编辑 ]… 查看全部问答> |




