芯片:GD32F350 运行在8M
目标:启动芯片看门狗,定时喂狗
流程
1.初始化看门狗时钟
2.配置看门狗
3.定时喂狗

1.初始化看门狗时钟
启动用于给看门狗的内部40KHz的时钟
static void irc40k_config(void)
{
/* enable IRC40K */
rcu_osci_on(RCU_IRC40K);
/* wait till IRC40K is ready */
while(ERROR == rcu_osci_stab_wait(RCU_IRC40K));
}
2.配置看门狗
计算公式(单位:毫秒):看门狗单次计数时间 = 40K / 分频系数
下面的就1秒看门狗的设定
//重装载值
#define WDGT_RELOAD_VALUE 156
//分频系数
#define WDGT_PRESCALER_DIV FWDGT_PSC_DIV256
void WDGT_Init(void)
{
//时钟初始化
irc40k_config();
fwdgt_config(WDGT_RELOAD_VALUE, WDGT_PRESCALER_DIV);
fwdgt_enable();
}
3.定时喂狗
//喂狗
void WDGT_Feed(void)
{
fwdgt_counter_reload();
}
芯片:GD32F350 运行在8M
目标:启动芯片看门狗,定时喂狗
流程
1.初始化看门狗时钟
2.配置看门狗
3.定时喂狗

1.初始化看门狗时钟
启动用于给看门狗的内部40KHz的时钟
static void irc40k_config(void)
{
/* enable IRC40K */
rcu_osci_on(RCU_IRC40K);
/* wait till IRC40K is ready */
while(ERROR == rcu_osci_stab_wait(RCU_IRC40K));
}
2.配置看门狗
计算公式(单位:毫秒):看门狗单次计数时间 = 40K / 分频系数
下面的就1秒看门狗的设定
//重装载值
#define WDGT_RELOAD_VALUE 156
//分频系数
#define WDGT_PRESCALER_DIV FWDGT_PSC_DIV256
void WDGT_Init(void)
{
//时钟初始化
irc40k_config();
fwdgt_config(WDGT_RELOAD_VALUE, WDGT_PRESCALER_DIV);
fwdgt_enable();
}
3.定时喂狗
//喂狗
void WDGT_Feed(void)
{
fwdgt_counter_reload();
}
举报