cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeMX generate MX_WWDG_Init() causes system reset forever on STM32F429IGT6 board

snowuyl
Visitor

void MX_WWDG_Init(void)
{

/* USER CODE BEGIN WWDG_Init 0 */

/* USER CODE END WWDG_Init 0 */

/* Peripheral clock enable */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_WWDG);

/* USER CODE BEGIN WWDG_Init 1 */

/* USER CODE END WWDG_Init 1 */
LL_WWDG_SetCounter(WWDG, 64);
LL_WWDG_Enable(WWDG);
LL_WWDG_SetPrescaler(WWDG, LL_WWDG_PRESCALER_1);
LL_WWDG_SetWindow(WWDG, 64);
/* USER CODE BEGIN WWDG_Init 2 */

/* USER CODE END WWDG_Init 2 */

}

 

void MX_IWDG_Init(void)
{

/* USER CODE BEGIN IWDG_Init 0 */

/* USER CODE END IWDG_Init 0 */

/* USER CODE BEGIN IWDG_Init 1 */

/* USER CODE END IWDG_Init 1 */
LL_IWDG_Enable(IWDG);
LL_IWDG_EnableWriteAccess(IWDG);
LL_IWDG_SetPrescaler(IWDG, LL_IWDG_PRESCALER_4);
LL_IWDG_SetReloadCounter(IWDG, 4095);
while (LL_IWDG_IsReady(IWDG) != 1)
{
}

LL_IWDG_ReloadCounter(IWDG);
/* USER CODE BEGIN IWDG_Init 2 */

/* USER CODE END IWDG_Init 2 */

}

int main(void)
{
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);
NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 15, 0));
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();

char data[128];
static int startup_count = 0;
sprintf(data, "Startup count: %d\n", startup_count++);
UART_SendData((const uint8_t*)data, strlen(data));

MX_WWDG_Init();
MX_IWDG_Init();

while (1)
{
WWDG_Feed(); // Feed WWDG first
IWDG_Feed();
LL_mDelay(10);
sprintf(data, "Loop running, count: %d\n", startup_count++);
UART_SendData((const uint8_t*)data, strlen(data));
}
}

 

 

Cutecom shows "Startup count: 0" forever and WWDG_Feed() and IWDG_Feed() not called since system reset before entering while() loop.

 

0 REPLIES 0