STM32H743看门狗的使用

本文介绍了一个使用STM32微控制器的程序,实现的功能是初始化后点亮红灯,按下key_up后切换到绿灯并进行看门狗复位。程序涉及了LED、按键和独立看门狗模块的接口及控制逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考正点原子的例程,稍作改动,实现功能为:初始点亮红灯,按下key_up之后,点亮绿灯,同时复位

实际使用的过程中key_up可以更换为特定的判断条件,也不需要实际的亮灯操作

#include "sys.h"
#include "delay.h"
#include "usart.h" 
#include "led.h"
#include "key.h"
#include "iwdg.h"

int main(void)
{	
	Cache_Enable();                		
	HAL_Init();				        	
	Stm32_Clock_Init(160,5,2,4);  	   
	delay_init(400);				
	uart_init(115200);					
	LED_Init();						
	KEY_Init();                    		
	delay_ms(2000);              //延时2s,为了直观的看到复位的过程

	LED0(0);                       	 	
    while(1)
    {
        if(KEY_Scan(0)==WKUP_PRES)  	//如果key_up按下,实际可以更换为其他条件
        {
				
		 IWDG_Init(IWDG_PRESCALER_64,500); 	//狗咬复位
		 LED1(0);
        }
        delay_ms(10);      
	  }  
}

独立看门狗的初始化

#include "iwdg.h"
#include "sys.h"

IWDG_HandleTypeDef IWDG_Handler; //¶ÀÁ¢¿´ÃŹ·¾ä±ú

//³õʼ»¯¶ÀÁ¢¿´ÃŹ·
//prer:·ÖƵÊý:0~7(Ö»ÓеÍ3λÓÐЧ!)
//rlr:×Ô¶¯ÖØ×°ÔØÖµ,0~0XFFF.
//·ÖƵÒò×Ó=4*2^prer.µ«×î´óÖµÖ»ÄÜÊÇ256!
//rlr:ÖØ×°ÔØ¼Ä´æÆ÷Öµ:µÍ11λÓÐЧ.
//ʱ¼ä¼ÆËã(´ó¸Å):Tout=((4*2^prer)*rlr)/32 (ms).
void IWDG_Init(u8 prer,u16 rlr)
{
    IWDG_Handler.Instance=IWDG1;
    IWDG_Handler.Init.Prescaler=prer;    //ÉèÖÃIWDG·ÖƵϵÊý
    IWDG_Handler.Init.Reload=rlr;        //ÖØ×°ÔØ
    IWDG_Handler.Init.Window=IWDG_WINDOW_DISABLE;//¹Ø±Õ´°¿Ú¹¦ÄÜ
    HAL_IWDG_Init(&IWDG_Handler);    
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值