你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32U575从低功耗模式唤醒后,无法获取唤醒源

[复制链接]
kudoshinichi 提问时间:2025-8-7 15:50 / 未解决

如题,这个问题对我造成了很大的困扰

使用的芯片是stm32U575QIIXQ,我使用cubeMX创建初始工程,在PWR中定义了WKUP5,使用PA3作为我的唤醒引脚。 同时我使用RTC定时器唤醒。我希望可以通过一个按钮(连接在pa3上,常规为高电平,按下低电平)来随时唤醒MCU,也希望使用RTC定时器周期性唤醒。

将外部中断配置成事件模式,启用HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN5_LOW_1)PA3唤醒事件,同时启用HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN7_HIGH_3)RTC的定时器唤醒事件

配置好后,使用HAL_RTCEx_SetWakeUpTimer_IT设置定时器时长,之后调用

HAL_PWREx_EnterSHUTDOWNMode()进入shutdown模式。

下载之后运行,RTC定时唤醒和按键唤醒功能都正常。但我有一段逻辑是获取唤醒源,根据唤醒源来分发后续的步骤。 但获取唤醒源却一直异常。通过串口打印PWR的WUSR寄存器的值,发现上电一开始的时候,WUSR寄存器的值全都是零。但如果按照我的配置,RTC唤醒的话,WUSR寄存器应该是0x40(wkup7),而按钮唤醒的话,WUSR寄存器的值应该是0x10(wkup5)。

于是我使用调试模式,在debug模式下单步进行跟踪并查看寄存器状态。非常奇怪的是,在调试模式下,每次唤醒之后读取的WUSR的值却是正常的。

我想问下,为何在调试模式下可以正常读取WUSR的值而正常运行却不可以呢?

另外,经过后续测试,不单单是WUSR寄存器,整个PWR的其他寄存器如(SR, CR,WUCR等)也都是零,我并没有在启动过程中,对PWR的寄存器进行清零。

收藏 评论0 发布时间:2025-8-7 15:50

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版