STM32之窗口看门狗例程
#include "stm32f10x.h"
/* RCC时钟配置 */
void RCC_config(void)
{
ErrorStatus HSEStartUpStatus;
/* RCC寄存器设置为默认配置 */
RCC_DeInit();
/* 打开外部高速时钟 */
RCC_HSEConfig(RCC_HSE_ON);
/* 等待外部高速时钟稳定 */
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
/* 设置HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* 设置PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* 设置PCLK1 = HCLK / 2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
// /* 设置FLASH代码延时 */
// FLASH_SetLatency(FLASH_Latency_2);
// /* 使能预取址缓存 */
// FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* 设置PLL时钟源为HSE倍频9 72MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
/* 使能PLL */
RCC_PLLCmd(ENABLE);
/* 等待PLL稳定 */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
/* 设置PLL为系统时钟源 */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* 等待系统时钟源切换到PLL */
while(RCC_GetSYSCLKSource() != 0x08);
}
}
/* 窗口看门狗配置 */
void WWDG_config(void)
{
/* 打开时钟 */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
/* 设置WWDG预分频值 */
WWDG_SetPrescaler(WWDG_Prescaler_8);
/* 设置窗口值 */
WWDG_SetWindowValue(0x60);
/* 使能看门狗 */
WWDG_Enable(0x7F);
/* 清除中断标志位 */
WWDG_ClearFlag();
/* 使能中断 */
WWDG_EnableIT();
}
/* 中断向量配置 */
void NVIC_config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* 中断分组2 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_Init(&NVIC_InitStructure);
}
/* 毫秒延时函数 */
void delay_ms(uint16_t time)
{
uint16_t i = 0;
while(time--)
{
i = 12000;
while(i--);
}
}
/* WWDG中断向量 */
void WWDG_IRQHandler(void)
{
/* 喂狗 */
WWDG_SetCounter(0x7F);
/* 清除中断标志位 */
WWDG_ClearFlag();
}
/* 主函数 */
int main(void)
{
/* RCC时钟配置 */
RCC_config();
/* 中断向量配置 */
NVIC_config();
/* 窗口看门狗配置 */
WWDG_config();
while(1)
{
delay_ms(1000);
}
}
STM32之窗口看门狗例程相关推荐
- 【转载】如何使用STM32的窗口看门狗
STM32F的窗口看门狗中有一个7位的递减计数器,它会在出现下述2种情况之一时产生看门狗复位: 1)当计数器的数值从0x40减到0x3F时 2)当刷新看门狗时计数器的数值大于某一设定数值时,此设定数值 ...
- 【STM32】窗口看门狗
00. 目录 文章目录 00. 目录 01. WWDG简介 02. WWDG主要特性 03. WWDG功能说明 04. 设置看门狗超时 05. WWDG寄存器 5.1 控制寄存器 (WWDG_CR) ...
- STM32之窗口看门狗原理
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同. 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定.喂狗的时间不能过晚. 窗口看门狗 ...
- 【STM32】窗口看门狗程序
00. 目录 文章目录 00. 目录 01. 窗口看门狗简介 02. 硬件设计 03. 编程步骤 04. 程序示例 05. 测试结果 06. 附录 07. 声明 01. 窗口看门狗简介 窗口看门狗(W ...
- 【STM32】窗口看门狗 WWDG 实验代码详解
文章目录 main.c wwdg.c wwdg.h main.c #include "led.h" #include "delay.h" #include &q ...
- STM32学习(窗口看门狗)
1.窗口看门狗 之所以称为称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定).喂狗的时间不能过早也不能过晚. 而独立看门狗限制喂狗时间在0- ...
- 【STM32】窗口看门狗相关类型和函数
00. 目录 文章目录 00. 目录 01. WWDG概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 附录 06. 声明 01. WWDG概述 stm32f4xx_wwdg.h和 ...
- STM32之独立看门狗例程
- STM32之独立看门狗与窗口看门狗总结
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
最新文章
- 失眠——耳部按摩(组图)
- npm升级以及使用淘宝npm镜像
- element表格实现树形全选_vue+element UI实现树形表格带复选框的示例代码
- 五个使Java变得更好的功能
- OSPF——NSSA区域及完全NSSA区域(含配置命令)、第七类LSA类型 LSA-7详解
- 这次看到源码了,华为开源了方舟编译器
- SAP License:SAP中的一些问题及处理
- 【网易云课堂---轻松读书:番茄工作法二】
- 高级项目管理师/高项考试十大管理论文模板
- 《遥感原理与应用》总结—遥感传感器及成像原理
- 文献标识码、文献载体类型标识
- 龙芯cpu linux恢复密码,中标麒麟(龙芯CPU)--忘记root密码怎么修改?
- 桌面应用程序软件开发语言_开发多语言软件应用程序的技巧
- POSCMS 模块发布内容
- 转发 :QQ游戏百万人同时在线服务器架构实现
- 骰子 (入门概率DP)
- MFC界面编程基础(00):基本概念
- 使用BT下载是否会损毁SSD?
- Activiti Study
- Kotlin-JetPack-MVVM 从零开始搭建App
热门文章
- 词云-vue-wordcloud组件封装
- python 双向循环链表实现_python实现双向循环链表基本结构及其基本方法
- python调用cmd执行命令_python调用命令行,其中包含“echo”和“|”
- 扫地机器人哪个品牌好?五款口碑最好的扫地机器人
- sql:数据定义语言ddl
- (软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型
- [Python]网络爬虫(十):一个爬虫的诞生全过程(以山东大学绩点运算为例)
- windows下使用net-snmp实现agent扩展(一)
- qt中 accept()和ignore()函数
- DNS常用记录类型和服务发现(DNS解析)