完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、看门狗相关概述
1.概念 2.原理 二、相关寄存器 1.键值寄存器( IWDG_KR) 2.预分频寄存器( IWDG_PR) 3.重装载寄存器( IWDG_RLR) 4.状态寄存器( IWDG_SR) 三、操作步骤 1.独立看门狗超时时间计算 2.操作步骤 四、程序源码 1.iwdg.h 代码如下: #ifndef __IWDG_H#define __IWDG_H#include “sys.h”void IWDG_Init(u8 prer,u16 rlr);#endif 2.iwdg.c 代码如下: #include “iwdg.h”void IWDG_Init(u8 prer,u16 rlr){ IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//取消寄存器写保护 IWDG_SetPrescaler(prer);//设置独立看门狗的预分频系数 IWDG_SetReload(rlr);//设置看门狗重装载值 IWDG_Enable();//使能看门狗} 3.main.c 代码如下: #include “stm32f10x.h”#include “led.h”#include “delay.h”#include “beep.h”#include “key.h”#include “usart.h”#include “exti.h”#include “iwdg.h”int main(void){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); delay_init(); LED_Init(); Beep_Init(); KEY_Init(); uart_init(115200); EXTIX_Init(); IWDG_Init(4,625);//1s 1000ms=4*2^4/40*rlr delay_ms(200); LED1=0; while(1) { if(KEY_SCAN(1)==KEY0_PRES) { IWDG_ReloadCounter(); } } } 五、实验结果 无操作时,LED0每隔200ms点亮,一直进行复位操作; 当按下一次KEY0按键,相当于“喂狗”一次,此时不进行复位操作; 当一直按下KEY0按键,LED0不亮,此时一直“喂狗”,一直无法进行复位操作; 总结 只要你在一秒钟之内,有一次写入 0XAAAA 到 IWDG_KR,就不会导致看门狗复位(当然写入多次也是可以的)。 |
|
|
|
只有小组成员才能发言,加入小组>>
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
382 浏览 1 评论
250 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
230 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
590 浏览 2 评论
615 浏览 2 评论
1345浏览 9评论
STM32F429 U盘IAP升级程序跳转APP异常的原因?
14浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
12浏览 3评论
STM32F103时钟硬件程序会卡在“while((SPI3->SR SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);”导致异常复位的原因?
109浏览 3评论
10浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 09:17 , Processed in 0.975730 second(s), Total 69, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号