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

做加工都在哪个网站推广太原网站优化公司

做加工都在哪个网站推广,太原网站优化公司,数据开发网站模板,mac用什么软件做网站一、PY32F003F18窗口看门狗特点: 即使窗口看门狗被禁止,窗口看门狗的"递减计数器"也会继续递减计数。 二、窗口看门狗复位的条件: 1、将"控制寄存器WWDG_CR"中的WDGA1,激活"窗口看门狗计数器等于0x3F"时,则产…

一、PY32F003F18窗口看门狗特点:

即使窗口看门狗被禁止,窗口看门狗的"递减计数器"也会继续递减计数

二、窗口看门狗复位的条件:
1、将"控制寄存器WWDG_CR"中的WDGA=1,激活"窗口看门狗计数器等于0x3F"时,则产生复位
2、装载"窗口看门狗的计数器值"大于"窗口看门狗window寄存器的值",则产生复位。
3、窗口看门狗的"提前唤醒中断EWI=1",且"窗口看门狗递减计数器的值"达到0x40时,则产生EWI中断。
其中断处理程序处理完后,则产生复位。
4、装载"窗口看门狗计数器值"的条件:
递减计数器的值小于或等于窗口寄存器的数值,并且大于0x3F时,才可以向"窗口看门狗计数器值"写入新值,否则会引起复位。

三、窗口看门狗框图:

 四、窗口看门狗装载计数器值的时间图:

五、测试程序:

#include "WWDG.h"
#include "stdio.h"  //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf()/*
即使窗口看门狗被禁止,窗口看门狗的"递减计数器"也会继续递减计数;
窗口看门狗复位的条件:
1、将"控制寄存器WWDG_CR"中的WDGA=1,激活"窗口看门狗计数器等于0x3F"时,则产生复位
2、装载"窗口看门狗的计数器值"大于"窗口看门狗window寄存器的值",则产生复位。
3、窗口看门狗的"提前唤醒中断EWI=1",且"窗口看门狗递减计数器的值"达到0x40时,则产生EWI中断。
其中断处理程序处理完后,则产生复位。
4、装载"窗口看门狗计数器值"的条件:
递减计数器的值小于或等于窗口寄存器的数值,并且大于0x3F时,才可以向"窗口看门狗计数器值"写入新值,
否则会引起复位。
*/uint32_t WWDG_Config(void);
void WWDG_Counter_Reload(void);
void SysRstSrcRecord(void);uint32_t WWDG_Config(void)
{WWDG_HandleTypeDef   WwdgHandle;uint32_t timeoutvalue = 0;uint32_t pclk1 = 0;uint32_t wdgtb = 0;__HAL_RCC_WWDG_CLK_ENABLE();  //使能WWDG时钟WwdgHandle.Instance = WWDG;                   //选择WWDGWwdgHandle.Init.EWIMode   = WWDG_EWI_DISABLE; //窗口看门狗计数器值到达0x40时不会产生中断WwdgHandle.Init.Prescaler = WWDG_PRESCALER_8; //窗口看门狗的预分频器值:选择8分频WwdgHandle.Init.Counter   = 0x7F;             //窗口看门狗计数器值(7位): 0x7FWwdgHandle.Init.Window    = WWDG_Window_Value;             //窗口看门狗窗口值(7位):   0x40~0x7fHAL_WWDG_Init(&WwdgHandle);//WWDG初始化
//hwwdg->Init.EWIMode=WWDG_EWI_ENABLE,使能窗口看门狗计数器值到达0x40时产生中断
//hwwdg->Init.EWIMode=WWDG_EWI_DISABLE,窗口看门狗计数器值到达0x40时不会产生中断
//hwwdg->Init.Prescaler表示窗口看门狗的预分频器值
//窗口看门狗产生复位的时间: (hwwdg->Init.Counter - hwwdg->Init.Window + 1 ) * tPCLK * 4096 * 窗口看门狗的预分频器值timeoutvalue=(WwdgHandle.Init.Counter - WwdgHandle.Init.Window) + 1;//计算"窗口看门狗计数器值"和"窗口看门狗窗口值"的差pclk1 = HAL_RCC_GetPCLK1Freq();//获取PCLK的值wdgtb = (1 << ((WwdgHandle.Init.Prescaler) >> 7)); //获取分频值,2^WDGTB[1:0]timeoutvalue = ((4096 * wdgtb * timeoutvalue) / (pclk1 / 1000));//计算超时时间return(timeoutvalue);//返回"窗口看门狗的复位时间",单位为毫秒
}//函数功能:喂狗
void WWDG_Counter_Reload(void)
{WRITE_REG(WWDG->CR,0x7F);//Write to WWDG CR the WWDG Counter value to refresh with 0x7F
}//函数功能:打印CPU复位原因
void SysRstSrcRecord(void)
{uint8_t i;uint8_t Reset_Buffer[11];for(i=0;i<11;i++) Reset_Buffer[i]=0;//清除Reset_Buffer[0] = __HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY);//读取"内部部24MHz时钟源稳定标志"Reset_Buffer[1] = __HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY);//读取"外部4~32MHz时钟源稳定标志"
//  Reset_Buffer[2] = __HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY);  //读取"PLL时钟稳定标志"
//  Reset_Buffer[3] = __HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY);//读取"外部32.768KHz的时钟源稳定标志"Reset_Buffer[4] = __HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY);//读取"内部RC的32KHz时钟源稳定标志"Reset_Buffer[5] = __HAL_RCC_GET_FLAG(RCC_FLAG_PINRST);    //读取"外部引脚复位标志"Reset_Buffer[6] = __HAL_RCC_GET_FLAG(RCC_FLAG_PWRRST);   //读取"BOR/POR/PDR复位标志"Reset_Buffer[7] = __HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST);    //读取"软件复位标志"Reset_Buffer[8] = __HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST); //读取"独立看门狗定时器复位标志"Reset_Buffer[9] = __HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST); //读取"窗口看门狗定时器复位标志"Reset_Buffer[10] = __HAL_RCC_GET_FLAG(RCC_FLAG_OBLRST);   //读取"Option byte loader复位标志"if( Reset_Buffer[0] ) printf("\r\nHSI OK!");if( Reset_Buffer[1] ) printf("\r\nHSE OK!");
//	if( Reset_Buffer[2] ) printf("\r\nPLL OK!");
//	if( Reset_Buffer[3] ) printf("\r\nLXTAL OK!");if( Reset_Buffer[4] ) printf("\r\nLSI OK!");if( Reset_Buffer[5] ) printf("\r\nPIN reset!");if( Reset_Buffer[6] ) printf("\r\nPOR reset!");if( Reset_Buffer[7] ) printf("\r\nSWR reset!");if( Reset_Buffer[8] ) printf("\r\nIWDG reset!");if( Reset_Buffer[9] ) printf("\r\nWWDG reset!");if( Reset_Buffer[10] ) printf("\r\nOption byte loader reset!");
}

 

#ifndef __WWDG_H
#define __WWDG_H#include "py32f0xx_hal.h"#define WWDG_Window_Value  0x50#define _HAL_WWDG_ENABLE(__INSTANCE__) SET_BIT((__INSTANCE__)->CR, WWDG_CR_WDGA)
//将"控制寄存器WWDG_CR"中的WDGA=1,激活"窗口看门狗计数器等于0x3F"时产生复位#define Get_WWDG_Counter(__INSTANCE__)  ( (__INSTANCE__)->CR & (~WWDG_CR_WDGA) )
//读窗口计数器的值extern uint32_t WWDG_Config(void);
extern void WWDG_Counter_Reload(void);
extern void SysRstSrcRecord(void);
#endif /* __WWDG_H */
#include "py32f0xx_hal.h"
#include "SystemClock.h"
#include "delay.h"
#include "LED.h"
#include "SystemClock.h"
#include "USART2.h"
#include "stdio.h"  //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf()
#include "string.h" //使能strcpy(),strlen(),memset()
#include "WWDG.h"const char CPU_Reset_REG[]="\r\nCPU reset!\r\n";int main(void)
{uint32_t delay;HSE_Config();
//	HAL_Init();//systick初始化delay_init();
//	HAL_Delay(1000);USART2_Init(115200);//PA0是为USART2_TX,PA1是USART2_RX//中断优先级为0x01//波特率为115200,数字为8位,停止位为1位,无奇偶校验,允许发送和接收数据,只允许接收中断,并使能串口printf("%s",CPU_Reset_REG);SysRstSrcRecord();MCU_LED_Init();TIM1_LED_Init();delay=WWDG_Config();while (1){MCU_LED_Toggle();
//		HAL_Delay(delay+5);if( Get_WWDG_Counter(WWDG) <= WWDG_Window_Value)//喂狗时间到WWDG_Counter_Reload();//喂狗}
}

六、测试结果

http://www.dinnco.com/news/10276.html

相关文章:

  • wordpress 远程代码百度搜索引擎优化案例
  • 二级分销系统开发南沙seo培训
  • 百度app智能小程序网站如何优化排名软件
  • 宽屏大气网站源码广州新塘网站seo优化
  • 做时时彩网站牌照申请百度app安装下载免费
  • 平凉哪家做企业网站谷歌搜索引擎为什么国内用不了
  • 做soho外贸网站网络营销概述
  • 网站建设的公司黄页推广平台有哪些
  • wordpress分类汉字转拼音排名优化怎么做
  • 图书馆网站建设教程游戏推广平台哪个好
  • 网站中怎么做视频直播百度公司官方网站
  • 上海SEO网站优化推广公司永久免费不收费的污染app
  • 做有网被视频网站seo基础视频教程
  • 网站 建设 毕业设计 要求巨量引擎广告投放平台官网
  • 广东购物网站建设报价企业推广网站
  • 域名续费后网站打不开销售外包
  • 动易网站默认密码北京环球影城每日客流怎么看
  • 网站建设团队架构百度正版下载恢复百度
  • 深圳开发app公司seo网站关键词排名软件
  • 广东网站建设哪家专业百度推广竞价开户
  • 网站提交自动秒收录关键词优化报价查询
  • 男人和女人做av网站mac蜜桃923色号
  • 做网站有什么市场风险百度网站网址是多少
  • 建设企业查询网站郑州关键词优化顾问
  • 网站制作的公司有哪些seo基础教程视频
  • 烟台广告公司网站建设微信营销软件排行榜
  • 有注入漏洞的网站源码网络营销的策划流程
  • 兰溪做网站分类达人介绍
  • 科技团队网站营销推广方式
  • 山东省建设厅教育网站百度竞价排名背后的伦理问题