/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file iwdg.c * @brief This file provides code for the configuration * of the IWDG instances. ****************************************************************************** * @attention * * Copyright (c) 2026 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "iwdg.h" /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ IWDG_HandleTypeDef hiwdg; /* IWDG init function */ 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 */ hiwdg.Instance = IWDG; hiwdg.Init.Prescaler = IWDG_PRESCALER_64; hiwdg.Init.Reload = 1249; /* USER CODE BEGIN IWDG_DEFER_START */ /* ⚠ 生成区改动(唯一一处):原为 `HAL_IWDG_Init(&hiwdg)` 直呼。 * 原因:HAL_IWDG_Init() 内部第一句即 __HAL_IWDG_START()(立即启动看门狗, * 之后不可停、只能复位)。而本函数被 CubeMX 插在 main() 的 MX_*_Init 序列里, * 早于 app_main_init()——那段含 NAND 初始化/RTC/ADC,耗时可达数秒且无喂狗点, * 按 2.5s 超时最坏值(≈1.7s)必然复位 → 开机死循环(2026-09-29 实测确认)。 * 故本函数降级为**只填参数不启动**;启动动作移交 * task_wd_start()(App/util/task_watchdog.c),由 defaultTask 在存储 bring-up * 完成后调用——即"启动段不喂狗、主循环段才喂"的设计(见 * docs/子系统设计/看门狗设计说明.md §4.5)。 * 若 CubeMX 重生成覆盖此处,表现为"开机即复位",按本注释恢复即可。 */ /* USER CODE END IWDG_DEFER_START */ /* USER CODE BEGIN IWDG_Init 2 */ /* USER CODE END IWDG_Init 2 */ } /* USER CODE BEGIN 1 */ /* USER CODE END 1 */