面向物联网的嵌入式系统开发20STM32看门狗应用开发课件_第1页
面向物联网的嵌入式系统开发20STM32看门狗应用开发课件_第2页
面向物联网的嵌入式系统开发20STM32看门狗应用开发课件_第3页
面向物联网的嵌入式系统开发20STM32看门狗应用开发课件_第4页
面向物联网的嵌入式系统开发20STM32看门狗应用开发课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CC2530和STM32嵌入式接口技术开发5.6 STM32看门狗应用开发看门狗基本原理STM32看门狗STM32看门狗库函数的使用项目实践看门狗IC的基本原理看门狗,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零。如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位以此防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。STM32看门狗介绍STM32F407有两个

2、看门狗外设,一个是独立看门狗,另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,两者在实际的工程应用中有所不同。独立看门狗独立看门狗的工作原理就是一个递减计数器不断的往下递减计数,当减到0之前若没有喂狗,产生复位。窗口看门狗窗口看门狗计数器的值必须在上窗口和下窗口之间才可以喂狗,在上窗口复位或下窗口不喂狗程序都会复位。独立看门原理1. 独立看门狗时钟2. 计数器时钟3. 递减计数器4. 重装载寄存器5. 键值寄存器6. 状态寄存器独立看门狗工作流程独立看门狗是一种开放式的看门狗,只要在有效的喂狗时间内喂狗,系统都会重置看门狗计数器,同时不会触发复位。在喂狗时间之外如果没有喂狗操作

3、,那么系统将会被重启。窗口看门狗工作原理1. 窗口看门狗时钟2. 计数器时钟3. 递减计数器4. 窗口寄存器A. 看门狗超时判断B. 看门狗开启判断C. 看门狗复位触发窗口看门狗工作流程窗口看门狗是一种限制式的看门狗,在窗口期之前发送喂狗时系统会触发复位,在整个看门狗计时结束未喂狗,系统也会触发复位。只有在窗口期内喂狗,系统才会重置窗口看门狗计数器而不触发复位。独立看门狗配置流程1. 取消寄存器写保护IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);/开启看门狗写入功能2. 设置独立看门狗预分频系数和重装载值void IWDG_SetPrescaler(

4、uint8_t IWDG_Prescaler);/设置IWDG预分频值void IWDG_SetReload(uint16_t Reload); /设置 IWDG 重装载值3. 重载计数值喂狗IWDG_ReloadCounter();/按照IWDG重装载寄存器的值重装载IWDG计数器4. 启动看门狗IWDG_Enable();/使能IWDG窗口看门狗配置流程1. 使能WWDG时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);/WWDG时钟使能2. 设置窗口值和分频数void WWDG_SetWindowValue(uint8_tWindo

5、wValue);void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);3. 开启WWDG中断WWDG_EnableIT();/开启窗口看门狗中断4. 设置计数器初始值并使能看门狗void WWDG_Enable(uint8_t Counter);void WWDG_SetCounter(uint8_t Counter);5. 编写中断服务函数void WWDG_IRQHandler(void);项目场景有大量的移动通信基站都是建立在偏远或人迹罕至的地区,维护起来十分不便。然而这些基站监控系统会因为环境或软件等原因引起系统宕机,这时需要系统支持自复位功能

6、,通常采用的方法是使用处理器的看门狗功能,即程序跑飞后可使程序自动复位。任务目标某监测设备生产企业,要设计一款无人值守,性能稳定的户外监测设备,要求设备具备自供电,监测数据定时发送,运行状态实时更新,其自复位功能要求使用STM32处理器的看门狗进行实现。项目分析程序宕机后要让设备自动重启就需要用到STM32F407独立看门狗外设,通过配置独立看门狗外设,每隔一段时间喂狗以保持程序正常运行,中断喂狗则程序复位重启。 STM32F407独立看门狗喂狗操作比较简单,只需要执行“IWDG_ReloadCounter()“喂狗函数即可。项目程序逻辑框图程序启动后首先初始化LED和按键,延时一段时间后初始

7、化看门狗和设置LED灯状态。设置完成后程序进入主函数,在主函数中对K3进行检测,按下K3进行喂狗保持程序执行、否者程序复位重启。项目实现void wdg_init(char prer,int rlr) IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); /使能pr、rlr寄存器写操作 IWDG_SetPrescaler(prer); /设置预分频值 IWDG_SetReload(rlr); /设置重载值 IWDG_ReloadCounter(); /计数器重载 IWDG_Enable(); /独立看门狗使能看门狗初始化项目实现void wdg_feed(void) IWDG_R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论