单片机学习小组
直播中

贾小龙

8年用户 1708经验值
私信 关注

怎样去编写STM32独立看门狗之led灯亮灭的程序代码呢

怎样去编写STM32独立看门狗之led灯亮灭的程序代码呢?

回帖(1)

蔡艳

2022-1-17 09:59:16
情景如下:led一闪一灭,当我们按下某个按键时,他就保持亮,不按的话就会闪烁,实现一直按一直亮,不按则闪烁。
基本步骤如下:
①:取消寄存器写保护:
IWDG_WriteAccessCmd();
②:设置独立看门狗的预分频系数,确定时钟:
IWDG_SetPrescaler();
③:设置看门狗重装载值,确定溢出时间:
IWDG_SetReload();
④:使能看门狗
IWDG_Enable();
⑤:应用程序喂狗:
IWDG_ReloadCounter();
老规矩:还是先写.h文件

#ifndef __WDG__H
#define __WDG__H
#include "sys.h"
void IWDG_Init(u8 prer,u16 rlr);
#endif
然后.c文件

#include "iwdg.h"
#include "stm32f10x.h"
void IWDG_Init(u8 prer,u16 rlr)
{
        IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
        IWDG_SetPrescaler(prer);
        IWDG_SetReload(rlr);
        IWDG_ReloadCounter();
        IWDG_Enable();
}


最后主函数:

#include "beep.h"
#include "led.h"
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "exti.h"
#include "iwdg.h"
int main(void)
{
        delay_init();
        LED_Init();
        delay_ms(200);
        PBout(5)=0;
        IWDG_Init(4,625);
        while(1)
        {
                if(PEin(4)==0)
                {
                        IWDG_ReloadCounter();
                }
        }
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分