当前位置: 首页 > news >正文

网站开发培训免费域名申请 知乎

网站开发培训,免费域名申请 知乎,建设银行纪念币网站,正能量网站免费下载一、简介 STM32F10xxx内置两个看门狗#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障#xff1b;当计数器达到给定的超时值时#xff0c;触发一个中断(仅适用于窗口型看门狗)或产…一、简介 STM32F10xxx内置两个看门狗提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障当计数器达到给定的超时值时触发一个中断(仅适用于窗口型看门狗)或产生系统复位。 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动即使主时钟发生故障它也仍然有效。 窗口看门狗由从APB1时钟分频后得到的时钟驱动通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外能够完全独立工作并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。 二、独立看门狗 独立看门狗由专门的低速时钟(LSI)驱动即便是主时钟发生故障它仍能够有效所以此狗狗可以工作在与主时钟无关的要求下或者待机模块下。 独立看门狗一旦开启只能由MCU复位后才清除让它不再工作。 独立看门狗的时钟是一个内部RC时钟它会在30KHZ到60KHZ之间变化并非是精确的40KHZ而只是一般计算时取40KHZ。 喂狗时间计算 1S喂狗所需的计数40K/(42^预分频值) 喂狗时间重装载值/1S喂狗所需的计数 例IWDG_Init(4,625); 与分频数4,重载值为625,溢出时间为1s 40K/(42^4)625 625/6251S 独立看门狗需要设置四个寄存器 1、预分频寄存器(IWDG_PR)其低三位PR[2:0](Prescaler divider)有效。可设置4、8、16、32、64、128、256多种预分配系数。 2、重装载寄存器(IWDG_RLR)低12位RL[11:0]: 用来设置计数器的重装载值。 3、键寄存器(IWDG_KR)用来控制去除IWDG_PR和IWDG_RLR写保护功能以便正常写值。 向此寄存器写入0x5555则暂时去除IWDG_PR和IWDG_RLR的写保护功能才可向两个寄存器中写值 向此寄存器写入0xAAAA则IWDG_RLR的值会重装载防止MCU复位 向此寄存器写入0xCCCC是开启狗立看门狗动作 4、状态寄存器(IWDG_SR)最低两位有效RVU: 看门狗计数器重装载值更新 (Watchdog counter reload value update) 标识位和PVU: 看门狗预分频值更新(Watchdog prescaler value update) 标识位分别用来指示此时是否可向IWDG_RLR 和 IWDG_PR写值此寄存器由硬件置1与清0只有当为0时才可向上面两个寄存器写值。 void IWDG_Init(u8 prer,u16 rlr) { //向键寄存器(IWDG_KR)写入0x5555使能对寄存器IWDG_PR和IWDG_RLR的写操作 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //设置IWDG预分频值:设置IWDG预分频值为64 IWDG_SetPrescaler(prer); //设置IWDG重装载值IWDG_SetReload(rlr); //向键寄存器(IWDG_KR)写入0xAAAA重装载IWDG计数器 IWDG_ReloadCounter(); //向键寄存器(IWDG_KR)写入0xCCCC是开启狗立看门狗动作IWDG_Enable(); //使能IWDG } //喂独立看门狗 void IWDG_Feed(void) { IWDG_ReloadCounter(); }三、窗口看门狗 窗口看门狗是用APB1总线驱动的时钟频率最大36MHz。窗口看门狗的有两个值窗口的上限值上限值由用户独立设置窗口的下限值下限值固定为0X40。 窗口看门狗计数器的值必须在上限值和下限值之间才可以喂狗这就是窗口看门狗中窗口两个字的含义。 窗口看门狗递减计数器递减到 0X40 的时候还不会马上产生复位如果使能了提前唤醒中断 CFR 位 9EWI 置 1则产生提前唤醒中断。 1、使能 WWDG 时钟 WWDG使用的是 PCLK1 的时钟需要先使能时钟。 void RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); 2设置分频数配置寄存器(WWDG_CFR)的第8位和第7位WDGTB[1:0] void WWDG_SetPrescaler(uint32_t WWDG_Prescaler) 3、设置看门狗的窗口上限值设置窗口值配置寄存器(WWDG_CFR) 第0至第6位 void WWDG_SetWindowValue(uint8_t WindowValue) 4、开启 WWDG 中断配置寄存器(WWDG_CFR) 第9位 void WWDG_EnableIT(); 5、中断优先级配置 WWDG_NVIC_Init(); 6、设置计数器初始值并使能看门狗控制寄存器(WWDG_CR) 第0至第7位 void WWDG_Enable(uint8_t Counter) 7、 编写中断服务函数 通过该函数来喂狗在中断服务函数里将状态寄存器的 EWIF 位清空。 void WWDG_Init(u8 tr,u8 wr,u32 fprer) { // WWDG时钟使能 RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); //设置IWDG预分频值配置寄存器(WWDG_CFR)的第8位和第7位WDGTB[1:0]WWDG_SetPrescaler(fprer); //设置窗口值配置寄存器(WWDG_CFR) 第0至第6位WWDG_SetWindowValue(wr); //使能看门狗 ,设置计数器初值控制寄存器(WWDG_CR) 第0至第7位 WWDG_Enable(tr); //状态寄存器(WWDG_SR) 0位 提前唤醒中断标识清零WWDG_ClearFlag(); //初始化窗口看门狗 NVICWWDG_NVIC_Init(); //开启窗口看门狗中断 配置寄存器(WWDG_CFR) 第9位} WWDG_EnableIT(); } //重设置WWDG计数器的值 void WWDG_Set_Counter(u8 cnt) {WWDG_Enable(cnt); } //窗口看门狗中断服务程序 void WWDG_NVIC_Init() {NVIC_InitTypeDef NVIC_InitStructure;//WWDG中断NVIC_InitStructure.NVIC_IRQChannel WWDG_IRQn; //抢占2子优3组2NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 2; NVIC_InitStructure.NVIC_IRQChannelSubPriority 3; //抢占2子优先级3组2NVIC_InitStructure.NVIC_IRQChannelCmdENABLE; NVIC_Init(NVIC_InitStructure);//NVIC初始化 }void WWDG_IRQHandler(void) {// Update WWDG counterWWDG_SetCounter(0x7F); //当禁掉此句后,窗口看门狗将产生复位// Clear EWI flag */WWDG_ClearFlag(); //清除提前唤醒中断标志位 }
http://www.dnsts.com.cn/news/24084.html

相关文章:

  • 站外推广手机网站建设是什么
  • 小型网站建设dede网站模板 医疗
  • 购物网站排版设计做网站一般字号要做多少
  • 文化传播做网站推广吗合肥网站建设报价
  • 网站开发方案网站建设的单可以刷吗
  • 网站app免费软件江苏网站推广
  • 广州文化网站模板wordpress腾讯地图插件
  • 有什么可以下载软件的网站软件下载网站知乎
  • 外包做网站关于做美食的网站
  • 湛江网站建设公司机刷推广软件
  • 建站收入wordpress transient
  • 网站设计专业有哪些课程做百度推广销售怎么找客户
  • 山东聊城网站设计wordpress 分页显示
  • wordpress连续获取下一文章搜索seo
  • 手机网站推荐网站建设原理与实践
  • 锦州网站建设哪家好如何给网站做第三方流量监测
  • 怎么做淘客推广网站中国互联网四大门户
  • 五年级信息做网站的软件免费素材网图片
  • 网站建设职员广州市番禺人才网
  • 合肥模板建站多少钱电脑编程培训学校
  • 兰州网站建设 冰雨建设一个微商的网站
  • 淘宝客返利网站程序wordpress 文章 来源
  • 做网站 服务器国家企业信息公示系统(全国)官网
  • 哪个网站做h5比较好看遵义网站建设推广
  • 网站如何做二级域名网站页面头部设计说明
  • 口碑好的徐州网站建设成品网页网站
  • 南乐网站建设公司网校培训
  • 做装修网站公司嘉兴做网站赚钱么
  • 民非企业网站建设费怎么记账怎样上传网站程序
  • 站长工具排行榜个人简历样本