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

STM32睡眠模式个停止模式无法SDW和DEBUG。无语

[复制链接]
小耳朵1500922649 提问时间:2017-11-22 09:05 /
最近SDW调试STM32F103C8T6低功耗模式,发现IC在进入睡眠模式或STOP、STANDBY,DEBUG竟然无法使用自动退出debug,且无法下载程序和DEBUG,只能复位瞬间下载。去掉低功耗后一切正常。真是鸡肋。这一点就不如430做得好了。各位大牛有没有好的解决办法。
收藏 评论16 发布时间:2017-11-22 09:05

举报

16个回答
废鱼 回答时间:2017-11-22 11:23:30
开启低功耗模式时仿真功能。stm32f10x_dbgmcu.h中有介绍,楼主,任何事情要先问问大家,不要妄下定论。
天上飞的大树 回答时间:2019-4-1 22:32:31
本帖最后由 hunhanhonglou 于 2019-4-1 22:34 编辑
小耳朵1500922649 发表于 2018-12-22 11:14
请问你在线调试STOP模式时,只打开HAL_DBGMCU_EnableDBGStopMode();就可以吗。
我是用的STM32L071,发现 ...

亲  你在调试模式进入STOP模式会发生什么,单步运行可以进去低功耗吗?我这边开启调试时钟,开启STOP调试模式,调试的时候单步运行根本不会执行休眠,执行完_WFE之后紧接着就往下运行了,没有任何STOP状态,也不需要唤醒.但是全速运行我观察是有进STOP的,是应该这样吗?还是我配置错了不知道.
小耳朵1500922649 回答时间:2018-12-22 11:14:37
knifeflying 发表于 2018-12-21 15:33
谢谢。
在hal库中为:
  HAL_DBGMCU_EnableDBGSleepMode();

请问你在线调试STOP模式时,只打开HAL_DBGMCU_EnableDBGStopMode();就可以吗。
我是用的STM32L071,发现只有HAL_DBGMCU_EnableDBGStopMode();还不行必须打开DBGMCU时钟,也就是加上__HAL_RCC_DBGMCU_CLK_ENABLE();才可以在线调试STOP模式。
五哥1 回答时间:2017-11-22 12:03:33
你确定看完E文手册了吗,有的,建议看下手册。
五哥1 回答时间:2017-11-22 12:48:23
楼主注意  ,是SWD 不是SDW.
aidenZL 回答时间:2017-11-22 16:33:01
目测操作不当
小耳朵1500922649 回答时间:2017-11-22 16:56:03
安 发表于 2017-11-22 11:23
开启低功耗模式时仿真功能。stm32f10x_dbgmcu.h中有介绍,楼主,任何事情要先问问大家,不要妄下定论。
...

我用的HAL库,里面没发现dbgmcu.h   低功耗模式不能仿真按照手册介绍也可以理解的:STOP模式下,所有外设时钟和CPU都停止了,自然SWD时钟也被停止。
Inc_brza 回答时间:2017-11-22 17:16:23
需要打开debug功能,掌握搜索技巧也是一门学问
废鱼 回答时间:2017-11-23 08:31:15
楼主,请到stm32f1xx_hal.h中查看。
FelixJiang 回答时间:2018-12-20 18:17:26
安 发表于 2017-11-23 08:31
楼主,请到stm32f1xx_hal.h中查看。

我现在使用的stm32L4系列,在stm32l4xx_hal.h中并没有发现相关设置内容啊。可以支出具体的设置方法吗?
FelixJiang 回答时间:2018-12-20 18:18:04
Inc_brza 发表于 2017-11-22 17:16
需要打开debug功能,掌握搜索技巧也是一门学问

怎样打开休眠模式的debug功能,麻烦指点一下。
FelixJiang 回答时间:2018-12-21 14:28:08
安 发表于 2017-11-23 08:31
楼主,请到stm32f1xx_hal.h中查看。

已找到,谢谢
大陶 回答时间:2018-12-21 15:14:49
DBGMCU->CR |= 0x00000002;
加入这句话 停止模式下仿真
FelixJiang 回答时间:2018-12-21 15:33:08
dataozi 发表于 2018-12-21 15:14
DBGMCU->CR |= 0x00000002;
加入这句话 停止模式下仿真

谢谢。
在hal库中为:
  HAL_DBGMCU_EnableDBGSleepMode();
  HAL_DBGMCU_EnableDBGStopMode();
  HAL_DBGMCU_EnableDBGStandbyMode();
不过,这样在stop模式下的功耗会很大的
FelixJiang 回答时间:2018-12-22 20:02:33
小耳朵1500922649 发表于 2018-12-22 11:14
请问你在线调试STOP模式时,只打开HAL_DBGMCU_EnableDBGStopMode();就可以吗。
我是用的STM32L071,发现 ...

是的,这一句就可以了
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版