ST意法半导体
直播中

一曲作罢

10年用户 979经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注
[问答]

请问STM32MP257的m33核可以通过IWDG4 reset吗?需要怎么配置?

STM32MP257 的m33核可以通过IWDG4 reset吗?需要怎么配置?

回帖(1)

陈炜

2025-3-8 10:55:24
步骤 1:启用 IWDG4 时钟
IWDG4 使用低速时钟源(LSE 或 LSI)。首先需要启用和配置低速时钟源。


  • #include "stm32mp1xx_hal.h"
  • void SystemClock_Config(void);
  • int main(void)
  • {
  •     HAL_Init();  // 初始化 HAL 库
  •     SystemClock_Config();  // 配置系统时钟
  •     // 启用 LSE 作为 IWDG 时钟源
  •     __HAL_RCC_LSE_CONFIG(RCC_LSE_ON);
  •     if (HAL_IS_BIT_SET(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY))) {
  •         // LSE 已就绪
  •         __HAL_RCC_IWDG4_CLK_ENABLE();  // 启用 IWDG4 时钟
  •     } else {
  •         // LSE 未就绪,可以切换到 LSI
  •         __HAL_RCC_LSI_ENABLE();
  •         while (!__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY));
  •         __HAL_RCC_IWDG4_CLK_ENABLE();
  •     }
  • while (1) {
  •         // 主循环
  •     }
  • }




步骤 2:初始化 IWDG4
配置 IWDG4 的计时器参数,包括预分频器和计时周期。


  • #include "stm32mp1xx_hal_iwdg.h"
  • void IWDG4_Init(void)
  • {
  • IWDG_HandleTypeDef hiwdg4;
  •     // 初始化 IWDG4
  •     hiwdg4.Instance = IWDG4;
  •     hiwdg4.Init.Prescaler = 32;  // 预分频器
  •     hiwdg4.Init.Reload = 1000;   // 自动重装载值
  •     hiwdg4.Init.Window = 0xFFFF; // 窗口值(可选)
  •     hiwdg4.Init.Counter = 0x0;   // 初始计数值
  •     hiwdg4.Init.ClockSource = IWDG_CLOCKSOURCE_LSI; // 时钟源为 LSI
  •     hiwdg4.Init.EWIV = IWDG_EWIV_ENABLE;            // 使能早期唤醒中断(可选)
  •     HAL_IWDG_Init(&hiwdg4);
  • }
  • int main(void)
  • {
  •     HAL_Init();
  •     SystemClock_Config();
  •     IWDG4_Init();  // 初始化 IWDG4
  •     while (1) {
  •         // 主循环
  •     }
  • }




步骤 3:触发复位
当 IWDG4 的计时器溢出时,会触发系统复位。为了测试复位功能,可以手动触发 IWDG4 的溢出:


  • void HAL_IWDG_RefreshCallback(IWDG_HandleTypeDef *hiwdg)
  • {
  •     // 处理 IWDG 溢出事件
  •     HAL_NVIC_SystemReset();  // 触发系统复位
  • }
  • int main(void)
  • {
  •     HAL_Init();
  •     SystemClock_Config();
  •     IWDG4_Init();
  •     while (1) {
  •         HAL_Delay(5000);  // 延时 5 秒
  •         HAL_IWDG_Refresh(&hiwdg4);  // 刷新 IWDG4 计时器
  •     }
  • }

举报

更多回帖

发帖
×
20
完善资料,
赚取积分