尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
关于stop模式下RTC唤醒不进入main的问题
项目场景STM32L073VZT6在Stop模式下RTC唤醒执行完回调函数后不进入mian循环。项目场景stop低功耗裸机设计RTC秒唤醒执行完被置起的任务后进入stop模式。其中有个任务是使用LPUART的DMA发送接收用IDLE中断。确定的是发送数据的时间段是在RUN下接收有一部分已经在stop下强调一下IDLE中断无法在Stop下产生因为项目没有实时性所以在下一秒唤醒后产生IDLE中断进行数据解析因此数据会延迟一秒。特别地在进入睡眠前使能了SLEEPONEXIT位RTC唤醒执行回调函数时清除该标志位以进入main循环其他中断均不清除。问题描述RTC唤醒后执行完回调函数偶尔不进入main循环下一秒恢复正常。项目中使用了SLEEPONEXIT位但RTC唤醒在退出中断回调函数前也确定被清除功耗曲线持续在约120μA有点像sleep模式但整个项目没有sleep设计也没有相关代码块。睡眠函数部分重要代码如下/*LPUART配置在睡眠模式下工作时钟选择LSE即可若其他串口也需要在睡眠模式下可以接受数据则在进入stop前需要使能uartstop模式*/voidEnterStop(void){SCB-SCR|SCB_SCR_SLEEPONEXIT_Msk;//产生中断执行完回调后继续睡眠,库函数为HAL_PWR_EnableSleepOnExitHAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ONPWR_STOPENTRY_WFI);/*若系统时钟使用的是不是MSI从stop醒来后需要重新配置系统时钟 SysCofig() 或者在进入stop前使用__HAL_RCC_WAKEUPSTOP_CLK_CONFIG宏通过RCC-CFGR 寄存器中的 STOPWUCK 位来选择唤醒后的时钟源*/}若产生中断后除了执行完中断回调需要进入run模式执行复杂任务则需要在中断函数中清除SCB-SCR的SCB_SCR_SLEEPONEXIT_Msk位如RTC中断。SCB-SCRSCB_SCR_SLEEPONEXIT_Msk/*或调用库函数HAL_PWR_DisableSleepOnExit()清除*/原因分析Sop模式下若有使用DMA进行串口收发在进入Stop前一定要关闭DMA。这里的关闭不一定要去Deinit或者stop DMA可以关闭串口CR3寄存器中的DMAT/DMAR状态位。这里在实际项目中发现一个小问题HAL库的HAL_UART_Transmit_DMA函数中会监测各状态位的使能情况若DMAT为失能状态也会使能。但是实际项目中若在使用DMA发送之前不提前使能DMAT发送会出现异常欢迎大佬指点。解决方案在进入stop前调用Hal库函数HAL_UART_DMAPause()暂停DMAT或DMAR然后在调用HAL_UART_Transmit_DMA函数前用库函数HAL_UART_DMAResume()恢复传输。暂停DMA收发和恢复DMA收发的库函数源码会检测DMAR和DMAT分别进行失能和使能。但是如果直接调用这个库函数进行暂停和恢复也还是会偶尔出现高功耗的情况。最终解决是不使用库函数因为没有使用DMA的接收直接对LPUART的CR3寄存器的DMAT位进行寄存器级别的使能与失能。在HAL_PWR_EnterSTOPMode()函数前增加如下代码LPUART1-CR3~LPUART_CR3_DMAT
RELATED

相关推荐

今日开源工具推荐:KeePassXC 2.8.0 + Syncthing 2.1.7,密码与文件一次管好

今日开源工具推荐:KeePassXC 2.8.0 + Syncthing 2.1.7,密码与文件一次管好

今天推荐两个刚更新的开源工具:一个帮你把电脑、手机之间的文件同步起来,一个帮你把越来越多的账号密码收进一个加密库。两个都免费、无广告、不用注册账号。 一、Syncthing 2.1.7:不经过服务器的文件同步 Syncthing 是点对点同步工具&…

📅 2026/10/30 11:32:48
纯视觉无感定位+低空感知:未爆弹全域排查零盲区

纯视觉无感定位+低空感知:未爆弹全域排查零盲区

方案导语未爆弹排查是演训场地善后、实战化场地安全整治、野外复杂阵地隐患治理的核心重难点工作。传统排查模式长期依赖人工徒步踏勘、单点仪器探测、事后台账统计,存在排查范围有限、地形适应性差、盲区隐患多、作业风险高、定位精度低、数据无法溯源等突出短板&a…

📅 2026/10/30 11:32:48
KeePassXC 使用教程:密码不再靠脑记,建库、强密码、自动填充全上手

KeePassXC 使用教程:密码不再靠脑记,建库、强密码、自动填充全上手

账号越来越多,全用同一个密码不安全,每个都设不一样又记不住。KeePassXC 就是解决这个问题的开源工具:记一个主密码,剩下的都交给它,密码还只存在你自己的电脑里。 一、新建数据库,设好主密码 打开 KeePa…

📅 2026/10/30 11:32:48
MORE NEWS

更多资讯

📰

医院独立授时服务器:支撑电子病历可信时间戳与医疗溯源

摘要:电子病历、手术记录、床旁监护仪、检验系统等医疗设备与信息系统的时间一致性,是医疗数据真实可信的基础。在医疗纠纷处置、电子病历质控、医疗事件溯源场景中,时间戳是判定事件先后顺序、还原诊疗过程的核心证据。若院内各系统时间不同…

📰

时钟服务器对比:同样时间漂移,有的能自保,有的直接让审计翻车

时钟服务器的选型,很多采购只关注静态授时精度指标,却忽略卫星失锁、信号干扰、闰秒、上游源异常等场景下的时间漂移处置能力。当漂移发生时,不同品牌时钟服务器的时间平滑算法、日志存证机制、告警溯源、时间仲裁策略差异巨大:一…

📰

网络质量监控选型:CentOS 7安装Smokeping全记录

简介:这是一份面向网络运维工程师、系统管理员及开发者的 CentOS 7 下 Smokeping 快速部署手册。资源以 yum 安装方式为主线,先说明需要启用 EPEL 源,再依次讲解 /etc/smokeping/config 中监控主机、探测器与图表等配置,以及通过 …

📰

C++五子棋源码实战:人人对战与人机对战AI搜索优化

简介:这是一份面向C初学者与游戏编程爱好者的五子棋实战源码,同时支持人机对战与人人对战两种模式,适合用来理解面向对象设计、AI决策与图形交互等核心概念。压缩包共7个文件,约106KB,包含3个cpp源码文件、3个可执行程…

📰

JDK 1.8老项目集成Aspose三件套:版本选择与避坑指南

简介:这份资源面向需要在 Java 项目中实现 Office 文档格式转换的开发者,尤其适合仍在使用 JDK 1.8 环境、希望绕开复杂第三方依赖的技术人员。包内整合了 aspose 系列针对 Word、Excel、PPT 的转换能力,可将三类文档输出为 PDF,且…

📰

光模块基础知识与选型避坑:从SFP到QSFP28的速率匹配与运维要点

简介:光模块基础知识培训PPT包含1个文件,压缩包约7.8MB,面向通信行业新入行者、网络运维人员及光通信爱好者,系统讲解光模块在电信号与光信号转换中的核心作用,适合作为高校通信课程或企业新员工培训讲义。内容从工作原…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬