STM32
直播中

爱与友人

10年用户 1065经验值
擅长:可编程逻辑 模拟技术 存储技术
私信 关注
[问答]

STM32L4低功耗休眠模式下为什么无法使用SWD接口?

STM32进入休眠模式后,SWD接口应该是被关闭了,因此仅靠SWCLK、SWDIO两根线是不行的,解决方法有三种:1. 在程序里面加入这几个函数(按需要选择):
  HAL_DBGMCU_EnableDBGSleepMode();
  HAL_DBGMCU_EnableDBGStopMode();
  HAL_DBGMCU_EnableDBGStandbyMode();

就可以在各种模式下继续使用两线制的SWD,但是这种方法,会严重影响低功耗的性能。
2. 连接上NRST端口到开发板的相应端口,各种开发板上都有这个端口,因此在使用开发板的时候并没有察觉出来,自己制作板子的时候才发现这个问题。
3. 如果忘记在烧写接口上连接NRST端口了,就将NRST引线出来,手工接到地,然后点击下载,再松开NRST。就可以实现下载。

不过,我还是发现有问题:
ST官方的开发板上自带的st-link接口,是完全可以正常工作的。但是淘宝上卖的18元的或者120元的st-link,都不行,具体我用示波器监视NRST端口,都没有发现有拉低的过程。
难道淘宝上没有一款st-link支持stm32单片机低功耗模式下的烧写吗?
J-link倒是可以,nrst端口有拉低过程,可以正常烧写。但是我又发现了j-link的其他问题,这是后话了。

回帖(1)

高文利

2024-4-24 09:32:13
遇到过这种问题,但都是可以烧的,在进去休眠之前,复位烧录
举报

更多回帖

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