7.1实验内容
通过本实验主要学习以下内容:
独立看门狗的原理
独立看门狗功能介绍
实现独立看门狗功能
7.2实验原理
前面讲到,看门狗的计数值在每一个计数器时钟来的时候减1,那么这个时钟是什么呢,我们来看一下GD32F470的时钟树:

从时钟树可以看到,FWDGT的时钟来源于IRC32K,这是GD32F470的内部时钟,典型的频率值是32KHz。但要注意,这个IRC32K不是直接连到FWDGT计数器的,而是需要经过一个预分频器,这个分频器大小通过FWDGT_PSC进行设定。
预分频寄存器(FWDGT_PSC):



如设定PS[2:0]为001b,那么计数器的时钟频率就为32K/8 = 4KHz,即每隔250us计数值减1。
7.2.1独立看门狗(FWDGT)的重装载
说完时钟,我们来说下FWDGT的计数器和重装载。计数器就是按照前面说的,每来一个计数器时钟,计数器减1,而计数器的初始值,来自于重装载寄存器。
重装载寄存器(FWDGT_RLD):


从“描述”中我们可以看出,向FWDGT_CTL写入0xAAAA(即喂狗,详见用户手册FWDGT_CTL寄存器),重装载寄存器中的数值就会自动加载到FWDGT的计数器中。
重装载寄存器(FWDGT_RLD)是一个12位的计数器,这就意味着重装载最大值为65535,再结合上一节的时钟分频,FWDGT设定的最大/最小超时周期见下表:

7.2.2独立看门狗的使用注意事项
独立看门狗的时钟源来自于IRC32K,这个内部时钟实际上不是非常的准确,所以在设定看门狗重载值和分配器时需要留有一定的余量,防止应用程序由于IRC32K频率偏差而来不及喂狗,导致不必要的MCU复位。
7.3硬件设计
本实验我们通过紫藤派开发板LED0的状态来指示MCU复位情况,用LED1来指示喂狗的情况。
7.4代码解析
在driver_wdgt.c中定义了独立看门狗的配置函数drive_fwdgt_config和喂狗函数Feed_fwdgt:
C
void drive_fwdgt_config(uint16_t reload_value, uint8_t prescaler_div)
{
/* 开启内部32K时钟 */
rcu_osci_on(RCU_IRC32K);
/* 等待时钟ready */
while(SUCCESS != rcu_osci_stab_wait(RCU_IRC32K)){
}
/*配置看门狗参数*/
fwdgt_config(reload_value,prescaler_div);
/*开启看门狗*/
fwdgt_enable();
}
void Feed_fwdgt(void)
{
/* 重装载计数器 */
fwdgt_counter_reload();
}
以下为main函数代码:
C
int main(void)
{
uint8_t i;
driver_init();//delay函数初始化
bsp_led_group_init();//LED初始化
bsp_led_on(&LED1);//点亮LED0
delay_ms(2000); //延时2s
bsp_led_off(&LED1);//熄灭LED0
drive_fwdgt_config(625,FWDGT_PSC_DIV64);//独立看门狗配置
/*闪烁LED1 5次,并每闪烁一次进行喂狗*/
for(i = 0;i<5;i++)
{
delay_ms(500);
bsp_led_toggle(&LED2);
Feed_fwdgt();
printf_log('Feed_fwdgt!/r/n')
}
while (1)
{
}
}
本例程main函数首先进行了延时函数初始化,再初始化LED0和LED1,并将LED0点亮2s钟后熄灭,然后配置独立看门狗时钟预分频为64分频,重载值为1000,即超时时间为625/(32K/64)= 1.25s,再每500ms翻转一次LED1,同时进行喂狗,最后进入while(1)循环。
7.5实验结果
紫藤派开发板上电后,LED0灯亮,2s钟后熄灭,随后LED1闪烁5次,再经过一段时间后LED1灯灭,LED0复亮,周而复始。
上一篇:【GD32F303红枫派开发板使用手册】第十七讲 USART-中断串口收发实验
下一篇:【GD32H757Z海棠派开发板使用手册】第十讲 USART-中断串口收发实验
推荐阅读最新更新时间:2026-03-19 15:30
- LTC2945IUD-1 在 -48V 系统中使用低侧检测进行电源监控的典型应用
- 用于 24V 汽车应用的 LTC4367IDD 过压电源保护控制器的典型应用
- LTC2635-HZ12 四通道、12 位数模转换器的典型应用
- 使用 ROHM Semiconductor 的 BU4821 的参考设计
- 使用 Analog Devices 的 AD9625 的参考设计
- LT1307CS8 高压反激式转换器的典型应用电路
- AD7858L 3V 至 5V 单电源、200ksps、8 通道、12 位采样 ADC 的典型应用
- AND8337/D、1.2V、1.5V DC 至 DC 单路输出电源参考设计
- DER-713 - 使用 InnoSwitch3-EP PowiGaN 和 MinE-CAP 的 65 W 高功率密度适配器
- LDK120C11R 1.1V低压降稳压器典型应用(可调版)电路

GD32F4xx+RTC+Alarm 实现秒中断,通过串口打印时间
嵌入式系统技术与设计
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号