完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我使用的是STM32U585系列芯片,开启了IWDG,并在运行模式下测试提前唤醒中断正常触发,但在进入STOP2模式后,提前唤醒中断无法触发导致无法喂狗,看门狗超时后芯片复位。
手册中写道IWDG可以在停止模式生成唤醒中断,如下图: 并且我核查了FLASH选项字节是默认值0x1FEF F8AA无改动,则位17为1,IWDG在停止模式下运行,如下图: CubeMX配置如下图: 测试代码如下: /* USER CODE BEGIN 0 *//** * @brief IWDG提前唤醒中断 * @param None * @retval None */void HAL_IWDG_EarlyWakeupCallback(IWDG_HandleTypeDef *hiwdg){ HAL_IWDG_Refresh(hiwdg);}/** * @brief 进入停止模式2 * @param None * @retval None */void sys_api_power_stop2(void){ HAL_Suspendtick(); /* Enter the system to STOP2 mode */ __HAL_RCC_PWR_CLK_ENABLE(); HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI); /* Check that the system was resumed from stop 2 */ if(__HAL_PWR_GET_FLAG(PWR_FLAG_STOPF) == 0U) {} /* Clear stop flag */ __HAL_PWR_CLEAR_FLAG(PWR_FLAG_STOPF); /* Check that stop flag is cleared */ if(__HAL_PWR_GET_FLAG(PWR_FLAG_STOPF) != 0U) {} HAL_ResumeTick();}/* USER CODE END 0 *//** * @brief The application entry point. * @retval int */int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the System Power */ SystemPower_Config(); /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ICACHE_Init(); MX_IWDG_Init(); /* USER CODE BEGIN 2 */ sys_api_power_stop2(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_IWDG_Refresh( hiwdg); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */} |
|
相关推荐
2个回答
|
|
|
测试了SLEEP、STOP0、STOP1、STOP2和STANDBY模式,仅有SLEEP模式可以正常触发提前唤醒中断。
|
|
|
|
|
|
针对STM32U5系列IWDG在STOP2模式下无法触发提前唤醒中断的问题,以下是逐步解决方案: 步骤1:确认选项字节配置
步骤2:配置IWDG中断和唤醒源
步骤3:正确进入/退出STOP模式
步骤4:验证中断触发与喂狗逻辑
步骤5:检查低功耗模式与外设冲突
步骤6:验证CubeMX配置
可能遗漏的关键点
总结通过以上步骤,重点在于确保IWDG在STOP模式下被正确启用、中断配置无误、唤醒源和时钟恢复逻辑正确。若问题依旧,建议通过硬件调试(如测量LSI频率、检查选项字节)或简化代码逻辑逐步排查。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4168 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3246 浏览 1 评论
2776 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2206 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
15067 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3134浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1923浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2092浏览 3评论
2003浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2200浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 09:34 , Processed in 0.569095 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
9324