完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、独立看门狗概述:
独立看门狗其实就是一个独立于主时钟的定时复位狗。一旦开启独立看门狗,它就会根据自己设定的时间不断倒数,倒数到0后就开始复位。 二、关于喂狗: 喂狗就是让狗去吃东西,分心后,这只狗就得重新倒数。 三、stm32看门狗示例程序: #include “led.h” #include “delay.h” #include “key.h” #include “sys.h” #include “usart.h” void IWDG_Init(u8 prer,u16 rlr) { IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能对寄存器IWDG_PR和IWDG_RLR的写操作 IWDG_SetPrescaler(prer); //设置IWDG预分频值:设置IWDG预分频值为64 IWDG_SetReload(rlr); //设置IWDG重装载值 IWDG_ReloadCounter(); //按照IWDG重装载寄存器的值重装载IWDG计数器 IWDG_Enable(); //使能IWDG} int main(void) { //延时函数初始化 delay_init() //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //初始化与LED连接的硬件接口 LED_Init(); //按键初始化 KEY_Init(); delay_ms(500); //与分频数为64,重载值为625,溢出时间为1s IWDG_Init(4,625); //点亮LED0 LED0=0; while(1) { if(KEY_Scan(0)==WKUP_PRES) { IWDG_ReloadCounter(); //如果WK_UP按下,则喂狗 } } } 从主程序main的第一行开始运行到下面的代码时,开启看门狗 //与分频数为64,重载值为625,溢出时间为1s IWDG_Init(4,625); 此时,键值寄存器(IWDG_KR)中写入 0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值 0xFFF 递减计数。当计数器计数到末尾 0x000 时,会产生一个复位信号(IWDG_RESET)。 所以我们会看到等一亮一灭。 此时,如果检测到按键按下,那么就会运行喂狗程序: if(KEY_Scan(0)==WKUP_PRES) { IWDG_ReloadCounter(); //如果WK_UP按下,则喂狗 } 喂狗后, 键寄存器 IWDG_KR 中被写入 0xAAAA, IWDG_RLR 中的值就会被重新加载到计数器,也就是对应到初始化设置的计数值,我们设置的1S,那么计数器就将重1s处开始递减,如果我们持续按按键,那么计数器就会持续保持在那个值,不会倒数到0,也就不会产生复位,那么灯就会始终保持亮的状态。 从而验证了看门狗和喂狗的功能。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:01 , Processed in 0.777847 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号