一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生.看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) . 在键值寄存器(IWDG_KR)中写入 0xCCCC,开始启用独立看门狗:此时计数器开始从其复位值 0xFFF 递减计数.当计数器计…
一     前沿废语: 之前有很风靡的游戏,名字叫<看门狗>.该游戏用了很新的引擎技术,打造出了一个辽阔庞大的世界,内容是玩家Aiden·Pearce(主角)是一名精通黑客技术的高手,当时的世界是处于所有物品都被置了电子设备控制,整个城市都在依赖着他们,主人公决定利用自己的技术为这个世界惩奸除恶.   这个游戏以极高的自由度.出色的游戏质量与丰富的游戏内容被业界公认为开启次世代游戏的大门之作,该游戏被IGN评为年度最佳射击游戏(下载地址:http://down.ali213.net/pcgam…
一.独立看门狗和窗口看门狗 看门狗:单片机系统在外界的干扰下会出现程序跑飞的现象导致死循环,或者崩溃,看门狗电路就是为了避免这种情况的发生,看门狗的作用就是在一定的事件内(通过计数器实现)若没有收到喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号) 独立看门狗IWDG:独立于系统之外,因为有独立时钟30-60KHz,所以是不受系统影响的系统故障检测器,主要用于监视硬件错误. 窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同.如果系统时钟不走了,这个狗也就失去了作用…
第35章     WWDG—窗口看门狗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx中文参考手册>WWDG章节. 学习本章时,配合<STM32F4xx中文参考手册>WWDG章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分. 35.1 WWDG简介 STM32有两个看门狗,一个是独立看门狗,一个是窗口看门狗.我们知道独立看…
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生.看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) . 在键值寄存器(IWDG_KR)中写入 0xCCCC,开始启用独立看门狗:此时计数器开始从其复位值 0xFFF 递减计数.当计数器计…
一.介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料:                 应当注意:在窗口看门狗中,当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位 [注]图中的WDGTB为3表示2^3=8,表示8分频,最小时间910us也等于每次计数器减一所需要经过的时间:T(LSB),每隔910us减1.最大值也等于,设置重载(喂狗)值127时(最大),一个复位周…
独立看门狗IWDG 独立看门狗简单理解就是一个12位递减计数器,当计数器从某一个值递减到0时,系统就会产生一次复位 独立看门狗由专用低速时钟LSI驱动,其频率一般在30-60KHz之间,通常选择40KHz作为IWDG时钟 IWDG配置步骤 1.开启寄存器访问 2.设置预分频因子 3.设置重装载值 4.看门狗计数器重装载值 5.开启IWDG 举例 void IWDG_init(u8 prescaler, u16 reload) { IWDG_WriteAccessCmd(IWDG_WriteAcc…
STM8拥有两个硬件看门狗,分别叫做独立看门狗和窗口看门狗 独立看门狗的框图如下 我们可以看到,独立看门狗的时钟来自于LSI内部低速振荡器,经过二分频到达看门狗外设单元,在经过一个七位的预分频到达计数器,这个七位的分频由PR控制,看门狗内部使用一个八位的向下计数计数器来计数,计数到0的时候发出看门狗复位信号,同时有一个RLR可以存放看门狗的初始化值,但对KR操作的时候看门狗计数器重载RLR的数据,达到喂狗目的 所以,对看门狗的处理应该分为以下步骤 1.      关闭看门狗 2.      启动…
简介: 窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障.除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位.在递减计数器达到窗口配置寄存器(WWDG->CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷新,那么也将产生一个 MCU 复位.这表明递减计数器需要在一个有限的时间窗口中被刷新. 看门狗是一个定时器电路,一般有一…
STM32 内 部自带了 2 个看门狗:独立看门狗(IWDG)和窗体看门狗(WWDG) STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动.即使主时钟发生问题.它也仍然 有效. 这里须要注意独立看门狗的时钟是一个内部 RC 时钟,所以并非准确的 40Khz,而是 在 30~60Khz 之间的一个可变化的时钟.仅仅是我们在估算的时候,以 40Khz 的频率来计算,看 门狗对时间的要求不是非常精确,所以,时钟有些偏差,都是能够接受的. 首先我们得解说一下看门狗的原理. 这个百度百科里面有…
独立看门狗时钟来源为LSI:窗口看门狗时钟来源为CPU: 窗口看门狗窗口的含义是:喂狗必须在一定的窗口期内完成,不能过早也不能过晚. 总结:防止程序复位,用独立看门狗. 独立看门狗使用的流程:参见库函数中的例程 ;------------------------------------------------独立看门狗 ;使能看门狗 MOV IWDG_KR,#0CCH ;使能写看门狗寄存器 MOV IWDG_KR,#55H; ;128分频 MOV IWDG_PR,#05H; ;T = (1/12…
一.IWDG介绍 1.1 IWDG简介 STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另 一个是窗口看门狗WWDG.两个看门狗外设(独立和窗口)均可用于检测 并解决由软件错误导致的故障.独立看门狗简单理解其是就是一个12位 递减计数器,当计数器从某一个值递减到0时(如果看门狗已激活),系 统就会产生一次复位.如果在计数器递减到0之前刷新了计数器值,那么 系统就不会产生复位.这个刷新计数器值过程我们称之为"喂狗".看 门狗功能由 VDD 电压域供电,在停止模式和待机…
什么是窗口看门狗? 1)独立看门狗                限制喂狗时间在0-x内,x由相关寄存器决定.喂狗的时间不能过晚. 2)窗口看门狗               之所以称为窗口就是因为其喂狗时间是一个"窗口",不能过早也不能过晚. STM32F10x 的窗口看门狗中有一个7位的递减计数器,出现下述2种情况之一时产生看门狗复位: 1)当计数器的数值从0x40减到0x3F时 ,这里的0x3F可以看成是窗口的下限: 2)喂狗的时候,如果计数器的值大于某一设定数值(这个数值是窗口…
窗口看门狗WWDG其实和独立看门狗类似,它是一个7位递减计数器不断的往下递减计数,当减到一个固定值0x40时还不喂狗的话,产生一个MCU复位,这个值叫窗口的下限,是固定的值,不能改变 窗口看门狗(WWDG)的时钟来自PCLK1,即挂接在APB1总线上,APB1时钟最大为36M 窗口值由配置寄存器WWDG_CFR的[6:0]位设置,所以最大值0x7F 当递减计数器递减到0x40的时候,还不会马上产生复位,如果使能了提前唤醒中断,则产生提前唤醒中断,提醒喂狗,随后将复位 WWDG配置步骤 1.使能W…
窗口看门狗有一个提前唤醒中断,如果开启这个中断,那么当计数器的值达到0x40的时候就会产生这个中断. 上次的代码加一点就可以做这个实验了. void WWDG_Init(u8 tr,u8 wr,u32 fprer) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG时钟使能 WWDG_SetPrescaler(fprer);//设置预分频系数 WWDG_SetWindowValue(wr);//设置窗口上限 WWDG_En…
WWDG当前计数器的值以及激活位和WWDG_CR这个寄存器相关.如下图所示: 而STM32f10x的库函数提供了两种设置WWDG_CR[0:6]位的方式. WWDG_SetCounter方法 #define BIT_Mask = 0x7F/** * @brief Sets the WWDG counter value. * @param Counter: specifies the watchdog counter value. * This parameter must be a number…
1.WWDG简介 窗口看门狗(WWDG)通常被用来检测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障. WWDG是一个不断往下递减的计数器.当WWDG的计数器递减到固定值0x40时,还没有重新赋值计数值(俗称喂狗),就会产生一个复位信号,使芯片复位,这个0x40的固定值就叫做窗口的下限值,窗口下限值不需要设置. WWDG还有一个窗口上限值,当WWDG的计数器的值大于窗口上限值的时候,如果给WWDG的计数器重新赋值(喂狗),也会产生一个复位信号,使芯片复位,窗口的上…
源:STM8S awu及看门狗IWDG WWDG应用 AWU的应用(用库函数完成的) //切记要开启中断 且在中断函数中 AWU_GetFlagStatus(); 来清除中断 void AWU_SET(void) { CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, ENABLE); AWU_Init(AWU_TIMEBASE_12S); } #ifdef _COSMIC_ @far @interrupt void AWU_IRQHandler(void…
看看窗口看门狗的框图 从图里看出产生复位信号有2个方式: 1 WDGCR寄存器的T6 由1变0,也就是从此寄存器的值从0x40变成0x3F会产生复位信号: 2 当寄存器WDGCR的值大于WDGWR的时候写WDGCR寄存器会产生复位信号: 解释: WDGCR的最高位WDGA是开启看门狗的(WDGA=1开启),当然如果开启了硬件看门狗这个位就没用了.硬件看门狗在OPTION BYTES里设置. WDGCR的低六位是计数用的从图里可以得出这个计数器的时钟是fCPU时钟分频得来的.这个分频值固定是122…
窗口看门狗的喂狗时间范围 由框图知: 复位条件是:当且仅当 { 启动位启动 且 { T6为0 (计数器的值减小到0X03F即下限,还没喂狗,即喂狗太晚) 或 计数器的值高于上限时喂狗,即喂狗太早 } } 也就是说,窗口看门狗要求在一定时间范围内喂狗,否则就会使系统复位. 这个时间范围的下限是固定的:0x3f: 上限通过看门狗配置寄存器WWDG_CFR配置 早期唤醒中断 如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以用于喂狗以避免WWDG复位. 超时时间…
一,窗口看门狗 二,喂狗注意事项 三,程序设计 1.检查复位状态,有助于观察当前工作的可靠性 /* Check if the system has resumed from WWDG reset ,检查是否窗口看门狗导致的复位,如果发现由窗口看门狗导致的复位,输出打印信息*/ if (RCC_GetFlagStatus(RCC_FLAG_WWDGRST) != RESET) { /* WWDGRST flag set */ printf("wwdg reset cpu\r\n"); /…
本章教程通过串口调试助手打印显示程序运行状态,具体现象如下: 若计数器值在上窗口值和下窗口值0X40之间的时候,进行喂狗操作,计数器重新计数,程序正常运行,串口打印显示:The program runs normally: 若程序在快要减到0X3F时候通过中断函数进行喂狗操作,则串口打印显示:Execute interrupt function The program runs normally: 若程序没有在窗口时间内进行喂狗操作,则程序会不停进行复位. 1.WWDG简介及相关函数介绍窗口看门…
源:STM32之独立版USB(Host)驱动+MSC+Fatfs移植 STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序)…
一,独立看门狗 二,独立看门狗的时钟源 独立看门狗拥有自己的时钟源,不依赖PLL时钟输出的分频信号,能够独立运行,这样子的好处就是PLL假如受到干扰, 导致运行异常,独立的看门狗还能正常地进行工作,如果没有正常的喂狗动作,就复位CPU. 三.程序设计 1.     添加复位检测代码,有助于观察当前工作的可靠性 /* Check if the system has resumed from IWDG reset,检查当前复位是否有独立看门狗导致 */ if (RCC_GetFlagStatus(R…
1.有个7位递减计数器(WWDG->CR),就这个计数器和窗口计数器(WWDG->CFR)决定什么时候喂狗.狗喂早了,复位——“早”体现在 计数器值(tr)>窗口值(wr),也就是计数器值还没有减到窗口值以下: 2.当 0x40 < 计数器值(tr) < 窗口值(wr) 时,这时候最适合喂狗了,也只有在这时候喂狗才合适: 3.当 计数器的值 从0x40变到0x3F的时候,将产生看门狗复位:当然在要产生复位的前一段时间,如果开启了提前唤醒中断,那么就会进入中断,在中断函数里,我…
简单扼要 void IWDG_Init(void)//初始化 { IWDG->KR = 0xcc;//启动IWDG IWDG->KR = 0x55;//解除PR及RLR的写保护 IWDG->RLR = 0xff;//看门狗计数器重载值 IWDG->PR = 0x06;//分频系数256 1724.63ms IWDG->KR = 0xaa;//刷新IDDG,避免产生看门狗复位,同时恢复PR及RLR的写保护 } void IWDG_Feed(void)//喂狗 { IWDG-&g…
封面图是作者运行图,我在 ubuntu 环境下只有文字预测结果. Detection Using A Pre-Trained Model 使用训练好的模型来检测物体 运行一下命令来下载和编译模型 git clone https://github.com/pjreddie/darknet cd darknet make 运行一下模型来下载预训练权重 wget https://pjreddie.com/media/files/yolo.weights 运行以下命令来测试模型 ./darknet de…
今天在学习mpu6050的时候,发现程序出现了看门狗的程序,其实这个在学习51的时候就应该了解的,但是我并没有去了解.导致现在学习32,其实就是在补之前的51. 首先,我想把文章最后一句放到开始写出来:总结一下,就个人观点来说,看门狗并不是特别需要的,是否需要在程序中加看门狗模块就具体的程序实现而定. 好了,下面就介绍一下何为看门狗. stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG.主要作用是--可用来检测和解决由软件错误引起的故障:当计数器达到给定的超时值时,触发一个中断…
本文提到的有以下内容: 时钟系统与总线矩阵 SysTick系统定时器 RTC实时时钟 看门狗定时器 通用定时器 一.时钟系统与总线矩阵 stm32F4的时钟树如下图所示: 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. HSI是高速内部时钟,RC振荡器,频率为8MHz. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. LSI是低速内部时钟,RC振荡器,频率为40kHz. LSE是低速外部时钟,接频率为32.768kHz的石…
广大的互联网网友们,大家早上中午晚上好,我是某某某..对于狗..看过<忠犬八公>的我.无不深深的被狗的义气与灵气所震撼..我也觉得在所有mcu中用看门狗来形容让系统复位的功能是很恰当的.也很形象.但是偷偷说一句:我本人很怕狗..但是看门狗却很可爱..在STM32中存在着两条忠犬:独立看门狗和窗口看门狗,其英文简称为:IWDG和WWDG. IWDG篇:::接下来先看IWDG,对此缩写,我就不解释了..本人六级也在积极准备中,独立看门口这个“独立”,恕小弟不才,目前只知道其独立的含义是指在整个系统…