完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
STM32内置两个看门狗,用于检测单片机运行状态,并解决正常运行时不能重启或者运行异常时可进行重启的情况
独立看门狗的功能:配置独立看门狗的步骤:== (无需使能时钟,因为使用的是内部的LSI时钟)== 1.取消寄存器写保护(向 IWDG_KR 写入 0X5555) 通过取消 IWDG_PR 和 IWDG_RLR 的写保护,使后面可以操作这两个寄存器, 设置 IWDG_PR 和 IWDG_RLR 的值。 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // 这个函数就是开启/取消写保护,也就是使能/失能写权限 2.设置独立看门狗的预分频系数和重装载值 void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); //设置 IWDG_PR 预分频值, 范围为 0~7 void IWDG_SetReload(uint16_t Reload); //设置 IWDG_RLR 重装载值 设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间(也就是看门狗溢出时间),该时间的计算方式为: Tout=((4×2^prer) ×rlr) /40 , 其中 Tout 为看门狗溢出时间(单位为 ms)3.重载计数值喂狗(向 IWDG_KR 写入 0XAAAA) IWDG_ReloadCounter(); //按照 IWDG 重装载寄存器的值重装载 IWDG 计数器 通过这句,将使 STM32 重新加载 IWDG_RLR 的值到看门狗计数器里面。即实现独立看门狗的喂狗操作。 4.启动看门狗(向 IWDG_KR 写入 0XCCCC) IWDG_Enable(); //使能 IWDG 注意 IWDG 在一旦启用,就不能再被关闭!想要关闭,只能重启 窗口看门狗:递减计数器需要在一个有限的时间窗口——W[6:0] ~ 0X3F中被刷新 当看门狗的计数器在上窗口值之外被刷新,或者低于下窗口值都会产生复位 T[6:0]就是 WWDG_CR 的低七位,W[6:0]即是 WWDG->CFR 的低七位。T[6:0]就是窗口看门狗的计数器,而 W[6:0]则是窗口看门狗的上窗口,下窗口值是固定的(0X40)。 如果启动看门狗并开启中断,在计数器递减到0x40时,会产生早期唤醒中断EMI,提醒喂狗避免被复位窗口看门狗的超时公式: Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1; 其中: Twwdg:WWDG 超时时间(单位为 ms); Fpclk1:APB1 的时钟频率(单位为 Khz) ; WDGTB:WWDG 的预分频系数 ; T[5:0]:窗口看门狗的计数器低 6 位 窗口看门狗配置过程: 1.使能 WWDG 时钟 WWDG 不同于 IWDG,IWDG 有自己独立的 32Khz 时钟,不存在使能问题。而 WWDG使用的是 PCLK1 的时钟,需要先使能时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG 时钟使能APB1 2.设置窗口值和分频数 设置窗口值 void WWDG_SetWindowValue(uint8_t WindowValue); 设置分频数的函数是: void WWDG_SetPrescaler(uint32_t WWDG_Prescaler); 3.设置计数器初始值并使能看门狗 void WWDG_Enable(uint8_t Counter); //该函数既设置了计数器初始值,同时使能了窗口看门狗。 4.开启 WWDG 中断并分组 NVIC_Init(); // 进行中断优先级配置 WWDG_EnableIT(); //开启窗口看门狗中断 5.编写中断服务函数 通过该函数来喂狗:void WWDG_SetCounter(uint8_t Counter); //独立的设置计数器值并开启 WWDG_ClearFlag(); // 在中断服务函数里面也要将状态寄存器的 EWIF 位清空。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试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 09:52 , Processed in 0.690147 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号