整体思路
有一只柯基犬,它非常贪吃,只要一小时之内它没有吃到肉骨头,就会不干活,所以我们必须得不断给它喂吃的,一旦未肉骨头的间隔超过了一小时,那么柯基就会摇摇屁股说:“这门我不看了!”
以上就是本次实验的思想,我们让 LED0 亮起,通过不断点击按键来给它喂食,让它持续亮着,如果超时没有按下,那他就会熄灭。
主要代码
main函数部分
#include “sys.h”
#include “usart.h”
#include “delay.h”
#include “led.h”
#include “key.h”
#include “wdg.h”
int main(){
Stm32_Clock_Init(9);
delay_init(72);
LED_Init();
delay_ms(72);
uart_init(72,9600);
KEY_Init();
IWDG_Init(4,625);//溢出时间=(4*2^分频系数*重装载的值)
LED0=0;
while(1){
if(KEY_Scan(0)==WKUP_PRES){
IWDG_Feed();
}
delay_ms(10);
}
}
wdg.c
#include “wdg.h”
#include “led.h”
void IWDG_Init(u8 prer,u16 rlr){//狗狗预备出动函数
LED0=0;
IWDG-》KR=0X5555;//使能对IWDR-》PR和IWDR-》RLR的写
IWDG-》PR=prer;//设置分频系数
IWDG-》RLR=rlr;//从加载寄存器
IWDG-》KR=0XAAAA;//重载(喂狗)
IWDG-》KR=0XCCCC;//狗狗出动!
LED0=0;
}
void IWDG_Feed(void){//一键喂狗函数
IWDG-》KR=0XAAAA;
}
wdg.h
#ifndef _WDG_H
#define _WDG_H
#include “sys.h”
void IWDG_Init(u8 prer,u16 rlr);
void IWDG_Feed(void);
#endif
整体思路
有一只柯基犬,它非常贪吃,只要一小时之内它没有吃到肉骨头,就会不干活,所以我们必须得不断给它喂吃的,一旦未肉骨头的间隔超过了一小时,那么柯基就会摇摇屁股说:“这门我不看了!”
以上就是本次实验的思想,我们让 LED0 亮起,通过不断点击按键来给它喂食,让它持续亮着,如果超时没有按下,那他就会熄灭。
主要代码
main函数部分
#include “sys.h”
#include “usart.h”
#include “delay.h”
#include “led.h”
#include “key.h”
#include “wdg.h”
int main(){
Stm32_Clock_Init(9);
delay_init(72);
LED_Init();
delay_ms(72);
uart_init(72,9600);
KEY_Init();
IWDG_Init(4,625);//溢出时间=(4*2^分频系数*重装载的值)
LED0=0;
while(1){
if(KEY_Scan(0)==WKUP_PRES){
IWDG_Feed();
}
delay_ms(10);
}
}
wdg.c
#include “wdg.h”
#include “led.h”
void IWDG_Init(u8 prer,u16 rlr){//狗狗预备出动函数
LED0=0;
IWDG-》KR=0X5555;//使能对IWDR-》PR和IWDR-》RLR的写
IWDG-》PR=prer;//设置分频系数
IWDG-》RLR=rlr;//从加载寄存器
IWDG-》KR=0XAAAA;//重载(喂狗)
IWDG-》KR=0XCCCC;//狗狗出动!
LED0=0;
}
void IWDG_Feed(void){//一键喂狗函数
IWDG-》KR=0XAAAA;
}
wdg.h
#ifndef _WDG_H
#define _WDG_H
#include “sys.h”
void IWDG_Init(u8 prer,u16 rlr);
void IWDG_Feed(void);
#endif
举报