如果到了一定的时间,灯还是灭的话,说明看门狗没有工作,没有把MCU复位。如果LED闪烁,则说明这段时间看门狗在不停地复位MCU。
实验的硬件依旧是GD32120G-Start。
int main(void) { // NVIC_InitPara NVIC_InitStructure; // EXTI_InitPara EXTI_InitStructure; // /* Enable the GPIO_LED Clock */ RCC_AHBPeriphClock_Enable( RCC_AHBPERIPH_GPIOA , ENABLE ); //配置GPIO { GPIO_InitPara GPIO_InitStructure; /* Configure the GPIO_LED pin */ GPIO_InitStructure.GPIO_Pin = GPIO_PIN_1; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_Init( GPIOA , &GPIO_InitStructure ); GPIO_InitStructure.GPIO_Pin = GPIO_PIN_0; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_IN; GPIO_Init( GPIOA , &GPIO_InitStructure ); } if (SysTick_Config(SystemCoreClock / 1000)) { /* Capture error */ while (1); } GPIO_SetBits(GPIOA,GPIO_PIN_1); Delay(500); GPIO_ResetBits(GPIOA,GPIO_PIN_1); //Delay(1000); WWDG_DeInit(); IWDG_SetPrescaler(IWDG_PRESCALER_256); IWDG_SetReloadValue(0x0FFF); IWDG_Enable(); while(1) { } }
此时我们就会看见LED保持熄灭状态。说明这个时候MCU没有被复位。
另外,上面的一些代码参考我以前使用STM32F407板子写的博客,有意者阅知:http://www.cnblogs.com/zyqgold/archive/2013/05/23/STM32F4-Discovery.html
STM32跟GD32真的太像了