GD32E103C8T6《调试篇》之看门狗
看门狗定时器(WDGT)
1、知识点
看门狗定时器(WDGT)是一个硬件计时电路,用来监测由软件故障导致的系统故障。片上有
两个看门狗定时器外设,独立看门狗定时器(FWDGT)和窗口看门狗定时器(WWDGT)。
它们使用灵活,并提供了很高的安全水平和精准的时间控制。两个看门狗定时器都是用来解决
软件故障问题的。
看门狗定时器在内部计数值达到预设门限的时候,会触发一个复位。当处理器工作在调试模式
的时候看门狗定时器定时计数器可以停止计数。
这两段来自用户手册。
————————————————————
独立看门狗的原理:设定一个重载值。赋值计数器。每来一个脉冲计数值减减。如果计数值减到0。还没有去喂狗就会产生复位。所以在计数值在0~重载值范围必须要喂一次狗。
在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗。此时计数器开始从其复位值0xFFF递减,当计数器值计数到尾值0x000时会产生一个复位信号(IWDG_RESET)。
无论何时,只要在键值寄存器IWDG_KR中写入0xAAAA(通常说的喂狗), 自动重装载寄存器IWDG_RLR的值就会重新加载到计数器,从而避免看门狗复位。
如果程序异常,就无法正常喂狗,从而系统复位。
2、代码
#include "common.h"
//485 PB10--Tx PB11--Rx
//ADC PA0
ts_uart logo;
volatile uint16_t adcValue = 0;//
volatile uint16_t volValue = 0;//
void usart2_init() // 初始化串口0
{
rcu_periph_clock_enable(RCU_GPIOB); // 使能GPIOA时钟
rcu_periph_clock_enable(RCU_USART2); // 使能串口0时钟
/* connect port to USARTx_Tx *///配置TX 推挽复用模式
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* connect port to USARTx_Rx *///配置RX 浮空输入模式
gpio_init(GPIOB, GPIO_MODE_IN_FLOAT