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

模板网站外贸建站生哥seo博客

模板网站外贸建站,生哥seo博客,大数据培训多少钱,wordpress太卡1.STM32的独立看门狗是一个具有独立时钟的片上外设。通常,为了防止程序卡死,可以设置看门狗定时复位。当看看门狗被使能之后,会按初始化时设置的计数值进行计数。当根据计数值计数的倒数时间为0时,便会自动复位程序,即…

1.STM32的独立看门狗是一个具有独立时钟的片上外设。通常,为了防止程序卡死,可以设置看门狗定时复位。当看看门狗被使能之后,会按初始化时设置的计数值进行计数。当根据计数值计数的倒数时间为0时,便会自动复位程序,即重启系统。

计数值的计数为如下、prer为预分频值,rlr为计数值。

因此,需要及时的进行喂狗,即往寄存器中写入0xAAAA。

2.相关寄存器:

(1)IWDG_KR:

 

 (2)IWDG_PR:

(3) IWDG_RLR:

 3.设计思路:

首先,往KR寄存器中写入0x5555,取消PR和RLR寄存器的写保护。然后,设置分频系数、看门狗计数值,并加载计数值。最后,使能看门狗。

喂狗是往KR寄存器中写入0xAAAA即可。

4.代码:

(1)led:

#ifndef __LED_H
#define	__LED_H#include "stm32f10x.h"void LED_Init(void);#endif
#include "led.h"void LED_Init(void)
{//¶¨Òå¶Ë¿ÚµÄ½á¹¹Ìå:GPIO_InitTypeDef GPIO_InitStruct;//1.ʹÄÜʱÖÓ£ºRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOA,ENABLE);//2.ÅäÖö˿ڽṹÌåµÄÏà¹ØÐÅÏ¢£º£¨LED1£©GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStruct);//ÅäÖÃLED0£ºGPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;GPIO_Init(GPIOA,&GPIO_InitStruct);//³õʼʱ½«LEDµÄ¶Ë¿Ú¶¼ÖÃΪ1£¬¼´Ï¨ÃðGPIO_SetBits(GPIOA,GPIO_Pin_8);GPIO_SetBits(GPIOD,GPIO_Pin_2);
}

(2)key:

#ifndef __KEY_H
#define __KEY_H#include "stm32f10x.h"#define KEY_0 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)			//¶ÁÈ¡°´¼üµÄ״̬
#define KEY_1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)
#define KEY_2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)void KEY_Init(void);
void KEY_Scan(void);						//°´¼üɨÃ躯Êý#endif
#ifndef __KEY_H
#define __KEY_H#include "stm32f10x.h"#define KEY_0 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)			//¶ÁÈ¡°´¼üµÄ״̬
#define KEY_1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)
#define KEY_2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)void KEY_Init(void);
void KEY_Scan(void);						//°´¼üɨÃ躯Êý#endif
#include "key.h"
#include "delay.h"
#include "led.h"void KEY_Init(void)
{/*1.¶¨ÒåÒý½ÅµÄ½á¹¹Ìå¡£2.ʹÄÜÒý½Å¶ÔÓ¦µÄʱÖÓ¡£3.ÅäÖÃÒý½ÅÐÅÏ¢*///¶¨ÒåÒý½Å½á¹¹Ì壺GPIO_InitTypeDef GPIO_InitStruct;//ʹÄÜʱÖÓ£ºRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC,ENABLE);//ÅäÖÃÒý½ÅÐÅÏ¢(KEY0)£ºGPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStruct);//ÅäÖÃKEY1£ºGPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; //ÉèÖóÉÉÏÀ­ÊäÈëGPIO_Init(GPIOA,&GPIO_InitStruct);//ÅäÖð´¼üWK_UP:GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD;GPIO_Init(GPIOA,&GPIO_InitStruct);}void KEY_Scan(void)
{static u8 key_up = 1;				//°´¼üËÉ¿ª±ê־λif(key_up && (KEY_0 == 0||  KEY_1  == 0|| KEY_1 == 1)){delay_ms(10);						  //È¥¶¶¶¯key_up = 0;if(KEY_0 == 0){GPIO_ResetBits(GPIOD ,GPIO_Pin_2);GPIO_SetBits(GPIOA,GPIO_Pin_8);//delay_ms(1000);}else if(KEY_1 == 0){GPIO_ResetBits(GPIOA ,GPIO_Pin_8);GPIO_SetBits(GPIOD,GPIO_Pin_2);//delay_ms(1000);}else if(KEY_2 == 1){GPIO_ResetBits(GPIOA ,GPIO_Pin_8);GPIO_ResetBits(GPIOD ,GPIO_Pin_2);}}else if(KEY_0==1&&KEY_1==1&&KEY_2==0){key_up = 1;}
}

(3)IWDG:

#ifndef __IWDG_H
#define __IWDG_H#include "stm32f10x.h"void IWDG_Init(u8 prer,u16 rlr);
void FEED_Dog(void);#endif
#include "iwdg.h"void IWDG_Init(u8 prer,u16 rlr)
{//IWDGÓÐ×Ô¼ºµÄ¶ÀÁ¢Ê±ÖÓ£¬Òò´Ë²»ÐèҪʹÄÜËüµÄʱÖÓ//1.ÍùIWDG->KR¼Ä´æÆ÷ÖÐдÈë0x5555,È¡ÏûIWDG_PRºÍIWDG_RLR¼Ä´æÆ÷µÄд±£»¤£ºIWDG->KR = 0x5555;			//2.ÉèÖÃ·ÖÆµÏµÊý£ºIWDG->PR = prer;//3.ÉèÖÿ´ÃŹ·µÄ¼ÆÊýÖµ£ºIWDG->RLR = rlr;//4.¼ÓÔØ¼ÆÊýÖµ£ºIWDG->KR = 0xAAAA;//5.ʹÄÜ¿´ÃŹ·£ºIWDG->KR = 0xCCCC;
}void FEED_Dog(void)
{//ÿ´ÎÍùKR¼Ä´æÆ÷ÖÐдÈë0xAAAA£¬¿´ÃŹ·±ã»áÖØÐ¼ÓÔØ¼ÆÊýÖµ£ºIWDG->KR = 0xAAAA;
}

(5)main:

#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "iwdg.h"int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2LED_Init();KEY_Init();IWDG_Init(4,625);GPIO_SetBits(GPIOA,GPIO_Pin_8);delay_ms(1000);GPIO_ResetBits(GPIOA,GPIO_Pin_8);			//´ò¿ªLEDwhile(1){/*ʵÑéÏÖÏ󣺵±²»Í£µÄ°´Ï°´¼üʱ£¬¿ÉÒÔ¿´µ½µÆ³£ÁÁ¡£·´Ö®£¬¿ÉÒÔ¿´µ½µÆÉÁ˸*/if(KEY_2 == 1)		//Èç¹û°´¼ü±»°´Ï£¬Ôòι¹·¡£{FEED_Dog();}delay_ms(1000);}
}

5.运行结果:

 

 6.总结:利用看门狗可以防止程序卡死,即定时的喂狗。如果,没有及时的喂狗,系统便会一直复位。看门狗在实践中的应用很大,写入代码中,可以避免系统卡死。同时,可以避免逻辑错误,即如果系统没有执行到设定的逻辑的地方,就不喂狗,让系统复位,这样就可以知道程序在哪里出现了问题。

http://www.ds6.com.cn/news/54150.html

相关文章:

  • 江西手机网站建设百度识图网页版入口
  • 重庆璧山网站制作报价seo是哪个英文的缩写
  • 石桥铺做网站seo上排名
  • 网页设计与网站建设考试答案巨量引擎app
  • 新建网站怎么做seo搜索引擎优化是
  • 淄博那里有做网站的软文推广做的比较好的推广平台
  • 权威的大良网站建设广州seo软件
  • b2c外贸网站开发热狗seo顾问
  • 深圳网上创建公司重庆百度seo排名优化软件
  • 东莞免费企业网站模板推广电商网站对比
  • 跟我一起做网站pdf电驴2022今日最新军事新闻
  • 网站后台登陆密码忘记了免费发布广告
  • 电脑怎么创建网站吗百度百科官网登录
  • 网站流量转换百度问答seo
  • 手机网站做的比较好的最大免费发布平台
  • 武汉专业网站营销河南seo和网络推广
  • 各大高校的校园网站建设seo网站建设是什么意思
  • 专业做企业活动的趴网站苏州网站排名推广
  • 有没有免费的小程序制作优化大师手机版下载
  • 盐城专业做网站天津网站排名提升多少钱
  • 那种退不掉的网站怎么做的河南郑州做网站的公司
  • 大型网站 建设意义哈尔滨网络推广优化
  • 网站开发师培训关键词查询神器
  • 山西专业网站建设大全网站入口百度
  • 怎样用网站做淘宝客关键词爱站网
  • 做网站要学的代码网络推广公司十大排名
  • 互联网域名注册优化网站推广教程整站
  • 北京网站开发多少钱百度免费推广平台
  • 温州网站建设专业的公司百度电脑版网页版
  • 蓝色网站导航天津seo优化公司