ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32L1] L151单片机很奇怪无法修改DBG->CR寄存器

[复制链接]
186|5
 楼主 | 2019-9-14 08:26 | 显示全部楼层 |阅读模式
本帖最后由 天上飞的树儿 于 2019-9-14 08:34 编辑

低功耗设备,在每次使用jlink烧写程序时,jlink会自动把DBGMCU_CR寄存器下面的DBG_SLEEP,DBG_STOP,DEG_STANDBY位置为1.这个寄存器只有POR复位才可以影响.导致每次烧写完成程序后必须把设备电池拔下来,再上电才可以正常进入休眠.针对这个问题我在程序内部添加对这个寄存器的这些位置0的操作,但是不知道为什么函数语句没有任何作用,根据printf出来的内容,我执行清零操作之后这些寄存器仍旧是1.
同样的我也尝试调用了,HAL_DBGMCU_DisableDBGStopMode()等等库函数,仍旧没有任何效果.
L1系列的单片机操作DBG寄存器不需要像F0系列单片机一样首先启用DBG的时钟"__HAL_RCC_DBGMCU_CLK_ENABLE()".

想要达到的目的是可以正常在程序中清零此寄存器,而不需要每次烧写完成程序拔一次电池执行断电复位.

低功耗设备大家应该都会遇到类似问题,希望讨论一下.

截图是L151参考手册此寄存器的map:

RM0038为STM32L1部分单片机参考手册

RM0038为STM32L1部分单片机参考手册

使用特权

评论回复
| 2019-9-15 11:49 | 显示全部楼层
权限问题吧, 可能是只有调试系统可以改写的寄存器位

使用特权

评论回复
 楼主 | 2019-9-16 09:27 | 显示全部楼层
本帖最后由 天上飞的树儿 于 2019-9-16 09:28 编辑

设备处于调试模式的时候,单步执行可以修改这个寄存器,参考手册上说用户可以修改的.麻烦经验丰富额版主想想还有什么可能性.
@airwill

342875d7ee4fe0fea8.png

使用特权

评论回复
 楼主 | 2019-9-16 14:15 | 显示全部楼层
jlink在下载程序时都会对那些寄存器进行写入如何看到呢?

使用特权

评论回复
| 2019-10-12 15:10 | 显示全部楼层
这个是干嘛用的寄存器啊

使用特权

评论回复
| 2019-10-12 15:13 | 显示全部楼层
确实很奇怪

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表