搜索
查看: 2070|回复: 4

[求助] 低功耗进入异常

[复制链接]

该用户从未签到

8

主题

53

帖子

3

蝴蝶豆

中级会员

最后登录
2021-10-29
发表于 2021-1-22 16:38:22 | 显示全部楼层 |阅读模式
各位大佬好,小弟在使用STM32L431单片机的时候遇到一个奇怪的问题,我用的是HAL库,当我下载完程序后如果不完全断电,单片机进不了低功耗,即使通过硬件复位现象也是一样,但是只要我断开电源重新上电,后面不管是进入低功耗还是低功耗下唤醒都完全正常了,现在做一个产品通过锂电池供电,而且锂电池是焊接到板子上的,每烧录一次程序,就进不了低功耗了,得把电池焊下来重新接一下才正常,真是心力憔悴啊。
     在网上找了都没找到类似的问题,不知大佬们有没有碰到过这种情况。是不是烧完程序哪个寄存器置位了?
回复

使用道具 举报

该用户从未签到

8

主题

53

帖子

3

蝴蝶豆

中级会员

最后登录
2021-10-29
 楼主| 发表于 2021-3-9 17:01:57 | 显示全部楼层
找到解决问题的办法了,HAL_DBGMCU_DisableDBGStopMode();调用这个函数就好了,具体原因是STM32L431烧写完程序的过程以及进入调试后会将DBGMCU_CR寄存器的DBG_STOP位、DBG_STANDBY位、DBG_SLEEP位置位,置位之后的好处是进入调试界面后,不会因为进入停止模式了而导致中断调试。
degmcu1.png
degmcu2.png
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

53

帖子

3

蝴蝶豆

中级会员

最后登录
2021-10-29
 楼主| 发表于 2021-1-23 08:56:32 | 显示全部楼层
没人遇到同样的情况吗
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

1306

帖子

929

蝴蝶豆

版主

最后登录
2021-3-31
发表于 2021-2-2 15:41:33 | 显示全部楼层
请问重新上电时是否断开了烧录连接?
这里假定断开了连接,那么猜测多半是SWD的连接状态原因。楼主不妨在程序代码中增加一段功能,将SWD口禁止掉(改成IO口也可以试试),然后通过强制加载optionbyte使芯片重新复位一次。通过复位状态寄存器或者备份域寄存器记录这个状态,复位后就可以跳过
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

1306

帖子

929

蝴蝶豆

版主

最后登录
2021-3-31
发表于 2021-3-18 11:52:15 | 显示全部楼层
mvvm 发表于 2021-3-9 17:01
找到解决问题的办法了,HAL_DBGMCU_DisableDBGStopMode();调用这个函数就好了,具体原因是STM32L431烧写完 ...

强!!!
感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-20 12:29 , Processed in 0.165599 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表