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

福建省建设执业注册资格管理中心网站加强服务保障 满足群众急需需求

福建省建设执业注册资格管理中心网站,加强服务保障 满足群众急需需求,保定免费网站建站模板,网站建设力度文章目录一、窗口看门狗概述1.1 看门狗框图1.2 窗口看门狗工作过程总结1.3 超时时间1.4 为什么需要窗口看门狗1.5 其他注意事项二、常用寄存器和库函数2.1 控制寄存器WWDG_ CR2.2 配置寄存器WWDG_ CFR2.3 状态寄存器WWDG_SR三、手写窗口看门狗3.1 配置过程3.2 初始化窗口看门狗…

文章目录

  • 一、窗口看门狗概述
    • 1.1 看门狗框图
    • 1.2 窗口看门狗工作过程总结
    • 1.3 超时时间
    • 1.4 为什么需要窗口看门狗
    • 1.5 其他注意事项
  • 二、常用寄存器和库函数
    • 2.1 控制寄存器WWDG_ CR
    • 2.2 配置寄存器WWDG_ CFR
    • 2.3 状态寄存器WWDG_SR
  • 三、手写窗口看门狗
    • 3.1 配置过程
    • 3.2 初始化窗口看门狗
    • 3.3 中断服务函数
    • 3.4 主函数

一、窗口看门狗概述

之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。
而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。

是存在一口窗口期,只有在窗口期喂狗才能生效。,如果不再窗口期内进行喂狗,则也会复位

1.1 看门狗框图

在这里插入图片描述
也就是第6位0011 1111,开始下一次技术到0100 0000则会进行复位
在这里插入图片描述
配置寄存器就是用来设定窗口,而控制寄存器就是用来进行倒计时的。如果控制寄存器里面的数值大于配置寄存器里面的数值,则会进行复位,如果T6为0则也会进行置位

1.2 窗口看门狗工作过程总结

STM32F的窗口看门狗中有一个7位的递减计数器T[6:0],它会在出现下述2种情况之一时产生看门狗复位:

  • 当喂狗的时候如果计数器的值大于某一设定数值W[6:0]时,此设定数值在WWDG_CFR寄存器定义。
  • 当计数器的数值从0x40减到0x3F时【T6位跳变到0】

如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以用于喂狗以避免WWDG复位

在这里插入图片描述

1.3 超时时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 为什么需要窗口看门狗

对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了;

如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗也不会滞后刷新看门狗,这样可以检测出程序没有按照正常的路径运行非正常地跳过了某些程序段的情况

1.5 其他注意事项

上窗口值W[6:0]必须大于下窗口值0x40。否则就无窗口了。
窗口看门狗时钟来源PCLK1(APB1总线时钟)分频后。

二、常用寄存器和库函数

2.1 控制寄存器WWDG_ CR

在这里插入图片描述

void WWDG_Enable(uint8_t Counter);//启动并设置初始值
void WWDG_SetCounter(uint8_t Counter);//喂狗

2.2 配置寄存器WWDG_ CFR

在这里插入图片描述

void WWDG_EnablelT(void);// 使能提前唤醒中断
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
void WWDG_SetWindowValue(uint8_t WindowValue);

2.3 状态寄存器WWDG_SR

在这里插入图片描述

FlagStatus WWDG_GetFlagStatus(void);
void WWDG_ClearFlag(void);

三、手写窗口看门狗

3.1 配置过程

使能看门狗时钟:
RCC_APB1PeriphClockCmd();
设置分频系数:
WWDG_SetPrescaler();
设置上窗口值:
WWDG_SetWindowValue();
开启提前唤醒中断并分组(可选):
WWDG_EnableIT();
NVIC_Init();
使能看门狗:
WWDG_Enable();
喂狗:
WWDG_SetCounter();
编写中断服务函数
WWDG_IRQHandler();

3.2 初始化窗口看门狗

u8 WWDG_CNT=0X7F;
//初始化窗口看门狗 	
//tr   :T[6:0],计数器值 
//wr   :W[6:0],窗口值 
//fprer:分频系数(WDGTB),仅最低2位有效 
//Fwwdg=PCLK1/(4096*2^fprer). 一般PCLK1=42Mhz
void WWDG_Init(u8 tr,u8 wr,u32 fprer)
{NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); //使能窗口看门狗时钟WWDG_CNT=tr&WWDG_CNT;   //初始化WWDG_CNT,就是保留0-6,共7位的值WWDG_SetPrescaler(fprer); //设置分频值WWDG_SetWindowValue(wr); //设置窗口值
//	WWDG_SetCounter(WWDG_CNT);//设置计数值WWDG_Enable(WWDG_CNT);  //开启看门狗NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn;  //窗口看门狗中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;  //抢占优先级为2NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;					//子优先级为3NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;  //使能窗口看门狗NVIC_Init(&NVIC_InitStructure);WWDG_ClearFlag();//清除提前唤醒中断标志位WWDG_EnableIT();//开启提前唤醒中断
}

3.3 中断服务函数

void WWDG_IRQHandler(void)
{WWDG_SetCounter(WWDG_CNT); //重设窗口看门狗值WWDG_ClearFlag();//清除提前唤醒中断标志位LED1=!LED1;
}

3.4 主函数

如果正常喂狗,LED1会隔一段时间翻转。LED0会开始时亮,之后一直灭,如果产生复位,则LED0亮一下


int main(void)
{ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2delay_init(168);  //初始化延时函数LED_Init();				//初始化LED端口KEY_Init();		  	//初始化按键LED0=0;				   //点亮LED0delay_ms(300);WWDG_Init(0x7F,0X5F,WWDG_Prescaler_8); 	//计数器值为7f,窗口寄存器为5f,分频数为8	   while(1){LED0=1;  //熄灭LED灯}
}
http://www.hkea.cn/news/561993/

相关文章:

  • 保险网站建设优缺点seo代码优化步骤
  • 如何快速建网站百度电脑版入口
  • 山东省建设工程信息网站最近最新的新闻
  • 免费网站建设方案锦绣大地seo官网
  • 电子商务的网站建设牛排seo系统
  • 资源收费网站怎么做网站快速优化排名官网
  • 招标网哪个网站信息可靠百度站长工具网站
  • 郑州七七网站建设互联网推广公司
  • 佛山做外贸网站代理商百度收录技术
  • 公司网站建设需要什么今日热搜第一名
  • 烟台建设企业网站网站快速收录入口
  • 怎么做繁体字网站网络营销公司注册找哪家
  • 做ppt介绍网站吗网站搜索引擎优化工具
  • 深圳网站建设有没有市场百度搜索推广的五大优势
  • 网站建设好的图片百度互联网营销
  • 柳州网站制作公司seo优化什么意思
  • 网站建设做的好的公司淘宝关键词优化怎么弄
  • 手机网站用模版方象科技的企业愿景
  • 沈阳网站建设技术公司排名公司市场营销策划方案
  • 赣州网站建设怎样石家庄最新消息
  • 公司注册地址和经营地址不一致可以吗长春seo招聘
  • 好的做问卷调查的网站好推广有奖励的app平台
  • 有专业设计网站吗百度指数与百度搜索量
  • 网站的整体结构百度云网盘资源搜索引擎入口
  • 咸阳网站建设哪家专业杭州优化公司在线留言
  • 地板网站建设门户网站
  • 新增备案网站负责人人工智能培训心得体会
  • 帮境外赌场做网站是否有风险百度企业号
  • 网站换了服务器百度seo排名优化公司哪家好
  • 海南网站建设制作网络营销效果评估