【STM32】窗口看门狗 WWDG 实验代码详解
生活随笔
收集整理的這篇文章主要介紹了
【STM32】窗口看门狗 WWDG 实验代码详解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- main.c
- wwdg.c
- wwdg.h
main.c
#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "wwdg.h"int main(void){delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2uart_init(9600);LED_Init(); LED0=0;delay_ms(300); WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8); while(1){LED0=1; } }wwdg.c
#include "wwdg.h" #include "led.h"//保存WWDG計(jì)數(shù)器的設(shè)置值,默認(rèn)為最大. u8 WWDG_CNT=0x7f;void WWDG_Init(u8 tr,u8 wr,u32 fprer) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG時(shí)鐘使能WWDG_SetPrescaler(fprer);設(shè)置IWDG預(yù)分頻值WWDG_SetWindowValue(wr);//設(shè)置窗口值WWDG_Enable(tr); //使能看門狗 , 設(shè)置 counter . WWDG_ClearFlag();WWDG_NVIC_Init();//初始化窗口看門狗 NVICWWDG_EnableIT(); //開啟窗口看門狗中斷 } //重設(shè)置WWDG計(jì)數(shù)器的值 void WWDG_Set_Counter(u8 cnt) {WWDG_Enable(cnt); } //窗口看門狗中斷服務(wù)程序 void WWDG_NVIC_Init() {NVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn; //WWDG中斷NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //搶占2,子優(yōu)先級(jí)3,組2 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //搶占2,子優(yōu)先級(jí)3,組2 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);//NVIC初始化 }void WWDG_IRQHandler(void){// Update WWDG counterWWDG_SetCounter(0x7F); //當(dāng)禁掉此句后,窗口看門狗將產(chǎn)生復(fù)位// Clear EWI flag */WWDG_ClearFlag(); //清除提前喚醒中斷標(biāo)志位// Toggle GPIO_Led pin 7 */LED1=!LED1;}wwdg.h
#ifndef __WDG_H #define __WDG_H #include "sys.h"void WWDG_Init(u8 tr,u8 wr,u32 fprer);//初始化WWDG void WWDG_Set_Counter(u8 cnt); //設(shè)置WWDG的計(jì)數(shù)器 void WWDG_NVIC_Init(void); #endif總結(jié)
以上是生活随笔為你收集整理的【STM32】窗口看门狗 WWDG 实验代码详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【STM32】外部中断实验代码详解
- 下一篇: 【STM32】定时器中断实验代码详解