看门狗软件如何设置

时间:2025-01-22 19:10:20 网游攻略

设置看门狗程序的方法取决于你使用的微控制器和操作系统。以下是几种常见情况下的设置方法:

基于STM32F10x的独立看门狗(IWDG)设置

包含库文件

```c

include "stm32f10x_iwdg.h"

```

配置看门狗相关参数

```c

void WatchDog_int(void) {

/* Enable write access to IWDG_PR and IWDG_RLR registers */

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

/* IWDG counter clock: 32KHz(LSI) / 32 = 1KHz */

IWDG_SetPrescaler(IWDG_Prescaler_32); // 独立看门狗预分频为32

/* Set counter reload value to 1000 */

IWDG_SetReload(1000); // 设置IWDG重装载值,范围为0~0x0FFF

/* Reload IWDG counter */

IWDG_ReloadCounter(); // 按照重装载的寄存器的值来重装载IWDG计数器

/* Enable IWDG (the LSI oscillator will be enabled by hardware) */

IWDG_Enable(); // 使能独立看门狗

}

```

在主程序中实现喂狗的程序

```c

int main(void) {

WatchDog_int(); // 初始化看门狗

while (1) {

// 正常程序逻辑...

/* 每隔一段时间喂狗一次,防止看门狗超时复位系统 */

WatchDog_int();

}

}

```

基于GD32F450和RT-Thread的看门狗设置

在工程配置中打开看门狗

打开工程文件,确保自动选中看门狗选项。如果没有此选项,需要在`board`文件夹下的`Kconfig`文件中添加:

```config

config BSP_USING_WDT

bool "Enable Watchdog Timer"

select RT_USING_WDT

default n

```

添加看门狗驱动

在`libraries\gd32_drivers`文件夹下的`SConscript`文件中添加:

```sc

add wdt drivers

if GetDepend('RT_USING_WDT'):

src += ['drv_wdt.c']

```

在`libraries\GD32F4xx_Firmware_Library`文件夹下的`SConscript`文件中添加:

```sc

if GetDepend(['RT_USING_WDT']):

src += ['GD32F4xx_standard_peripheral/Source/gd32f4xx_wwdgt.c']

src += ['GD32F4xx_standard_peripheral/Source/gd32f4xx_fwdgt.c']

```

基于STC15单片机的看门狗设置

操作看门狗寄存器

```c

include "stm32f10x.h"

include "stm32f10x_wwdg.h"

void Watchdog_Init(void) {

// 初始化看门狗时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);

// 设置看门狗预分频系数

WWDG_SetPrescaler(WWDG_Prescaler_8);

// 设置看门狗重装载值

WWDG_SetCounter(WWDG_Counter_4096);

// 开启看门狗中断

WWDG_EnableIRQ();

}

void Watchdog_Feed(void) {

// 喂狗,重置看门狗计数器

WWDG_ClearFlag();

}

int main(void) {

Watchdog_Init(); // 初始化看门狗

while (1) {

// 正常程序逻辑...

/* 每隔一段时间喂狗一次,防止看门狗超时复位系统 */

Watchdog_Feed();

}

}

```

基于Python的看门狗设置(使用watchdog库)

安装watchdog库