0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

串口看门狗编程实验详解

算法&编程学院 作者:工程师a 2018-05-20 10:25 次阅读

// 独立看门狗没有中断,WWDG有

// IWDG有时钟(LSI),wwdg需要挂载(PCK1:APB1)

// IWDG是12位递减的。WWDG是7位递减的

// IWDG只有下限,WWDG有下限和上限

// IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序

#include “stm32f4xx.h”

void delay(void);

void led_init(void);

void wwdg_init(u8 tr,u8 wval,u32 pre);

void WWDG_IRQHandler(void);

u8 WWDG_CNT=0X7F;

int main(){

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

led_init();

GPIO_ResetBits(GPIOF,GPIO_Pin_10);

delay();

delay();

GPIO_SetBits(GPIOF,GPIO_Pin_10);

wwdg_init(0x7f,0x5f,WWDG_Prescaler_8);

while(1){

GPIO_ResetBits(GPIOF,GPIO_Pin_10);

}

}

void delay(void){

int i,j;

for(i=0;i《100000;i++)

for(j=0;j《1000;j++)

{}

}

void led_init(void){ // 保持DS1灯常亮,当熄灭时,表示MCU复位,说明没有喂狗。 DS0当喂狗时闪烁

GPIO_InitTypeDef GPIO_InitStruct;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;

GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;

GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_InitStruct.GPIO_Speed=GPIO_Fast_Speed;

GPIO_Init( GPIOF, &GPIO_InitStruct);

GPIO_SetBits(GPIOF,GPIO_Pin_10|GPIO_Pin_9);

}

void wwdg_init(u8 tr,u8 wval,u32 pre){ // 分别为计算计数器初值、看门狗窗口值(上限:自己设定,下限0x40)、分频数

NVIC_InitTypeDef NVIC_InitStruct;

WWDG_CNT=tr&WWDG_CNT;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); // wwdg挂载的时钟,iwdg有自己的时钟,不需要挂载

WWDG_SetWindowValue(wval);

WWDG_SetPrescaler(pre);

WWDG_Enable(WWDG_CNT);// 开启看门狗:设置了计数器初值,并且使能了看门狗

NVIC_InitStruct.NVIC_IRQChannel=WWDG_IRQn;

NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0x02;

NVIC_InitStruct.NVIC_IRQChannelSubPriority=0x02;

NVIC_Init(& NVIC_InitStruct);

WWDG_ClearFlag();

WWDG_EnableIT();// 开启提前唤醒中断

}

void WWDG_IRQHandler(void){

WWDG_SetCounter(WWDG_CNT);

WWDG_ClearFlag();

GPIO_ResetBits(GPIOF,GPIO_Pin_9); //中断处理函数,中间出现喂狗,DS0就会闪一下

delay();

delay();

delay();

GPIO_SetBits(GPIOF,GPIO_Pin_9);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    561

    浏览量

    70797
收藏 人收藏

    评论

    相关推荐

    STM32中的独立看门狗和窗口看门狗是什么

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本上分为两大类:独立看门狗
    的头像 发表于 02-20 17:47 2727次阅读
    STM32中的独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>是什么

    什么是看门狗电路

    看门狗电路 看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很
    发表于 10-21 01:40 8182次阅读

    Arduino 看门狗

    Arduino的看门狗程序,UNO直接可以串口下载。
    发表于 05-25 10:01 16次下载

    看门狗的c语言编程

    看门狗的c语言编程,快来下载学习啊
    发表于 07-04 14:01 11次下载

    stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

    本文为您讲解STM看门狗时间计算(时限)与频率计算,独立看门狗和窗口看门狗的特性、区别与联系。
    发表于 10-10 10:41 8763次阅读

    什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析

    stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗
    的头像 发表于 11-06 11:48 2.7w次阅读
    什么是stm32<b class='flag-5'>看门狗</b>?独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>工作原理解析

    STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

    stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型
    发表于 11-09 17:17 8439次阅读
    STM32<b class='flag-5'>看门狗</b>配置(独立<b class='flag-5'>看门狗</b>IWDG和窗口<b class='flag-5'>看门狗</b>WWDG)

    独立看门狗实验-IWDG-M3

    关于STM32独立看门狗实验文档
    发表于 11-27 15:30 3次下载

    MCU独立看门狗与窗口看门狗的区别

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗
    发表于 10-28 20:06 8次下载
    MCU独立<b class='flag-5'>看门狗</b>与窗口<b class='flag-5'>看门狗</b>的区别

    【嵌入式系统】独立看门狗原理+看门狗实验分析

    【嵌入式系统】独立看门狗原理+看门狗实验分析1、看门狗模块概述在由单片机构成的微机系统中,由于单片机工作常常会受到来自外界电磁场干扰导致程序跑飞,陷入死循环——即程序正常运行被打断,系
    发表于 11-25 09:51 1次下载
    【嵌入式系统】独立<b class='flag-5'>看门狗</b>原理+<b class='flag-5'>看门狗</b><b class='flag-5'>实验</b>分析

    STM32:独立看门狗、窗口看门狗的配置

    STM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同。
    发表于 02-08 16:15 18次下载
    STM32:独立<b class='flag-5'>看门狗</b>、窗口<b class='flag-5'>看门狗</b>的配置

    STM32中的独立看门狗和窗口看门狗

    一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本上分为两大类:独立
    的头像 发表于 12-22 16:58 2146次阅读

    详解独立看门狗的实现原理

    这里以大家熟悉的STM32为例给大家讲解一下独立看门狗的配置以及工作过程。STM32F10xxx内置两个看门狗:独立看门狗和窗口看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。
    发表于 12-22 17:01 3239次阅读

    STM32中的独立看门狗和窗口看门狗

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本上分为两大类:独立看门狗
    的头像 发表于 01-30 14:38 1371次阅读
    STM32中的独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>

    软件看门狗和硬件看门狗的区别

    系统出现了故障或死锁,软件看门狗会自动重启系统或执行其他预定义的操作。软件看门狗通常用于嵌入式系统中,可以方便地进行编程和控制。硬件看门狗则是一种独立的硬件设备,它与计算机主板上的芯片
    的头像 发表于 04-16 15:10 1078次阅读