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

仿真器升级app引起功耗变大问题,能不能在app里自动解决?

[复制链接]
ataudio 提问时间:2019-10-17 10:25 /
悬赏300ST金币未解决
解决办法:在程序开始加一个语句,关闭低功耗调试模式。

DBGMCU->CR &= ~0x00000002;


各位大佬,诚心请教:
STM32L476xxxx,产品程序是bootloader+App,可以仿真器或者FTP远程升级。我遇到的情况是:
原来程序静态功耗20uA。后来用仿真器烧录升级的app,功耗升到了300uA。已找到功耗增加的原因是烧录时,stlink utility工具设置中选择了enable debug in low power模式引起的。如果烧录后,彻底断电重启呢,功耗会回到20uA。不断电,通过其它非仿真器模式升级后自动reset,也是300uA。
如果在20uA的情况下,FTP升级reset完成,仍然20uA;而300uA状态下,FTP升级reset后,也还是300uA。

我的问题是,有没有办法在app里设置代码,通过远程FTP升级,关闭低功耗下的debug模式,将功耗降回20uA正常水平?
我做过尝试,在新版本里重新单独配置所有GPIO管脚(调试脚是PA13、PA14),无效;配置完成后reset,也无效。
                                            __HAL_RCC_GPIOA_CLK_ENABLE();
                                            __HAL_RCC_GPIOB_CLK_ENABLE();
                                            __HAL_RCC_GPIOC_CLK_ENABLE();
                                            __HAL_RCC_GPIOD_CLK_ENABLE();
                                            __HAL_RCC_GPIOH_CLK_ENABLE();
                                            GPIO_InitTypeDef GPIO_InitStruct;   
                                            GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
                                            GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
                                            GPIO_InitStruct.Pull = GPIO_NOPULL;
                                            GPIO_InitStruct.Pin = GPIO_PIN_All;
                                            HAL_GPIO_Init(GPIOA,  &GPIO_InitStruct);
                                            HAL_GPIO_Init(GPIOB,  &GPIO_InitStruct);
                                            HAL_GPIO_Init(GPIOC,  &GPIO_InitStruct);
                                            HAL_GPIO_Init(GPIOD,  &GPIO_InitStruct);
                                            HAL_GPIO_Init(GPIOE,  &GPIO_InitStruct);
                                            __HAL_RCC_GPIOA_CLK_DISABLE();
                                            __HAL_RCC_GPIOB_CLK_DISABLE();
                                            __HAL_RCC_GPIOC_CLK_DISABLE();
                                            __HAL_RCC_GPIOD_CLK_DISABLE();
                                            __HAL_RCC_GPIOH_CLK_DISABLE();


求助,急。谢谢。!


收藏 评论3 发布时间:2019-10-17 10:25

举报

3个回答
ataudio 回答时间:2019-10-17 11:08:17
已经解决了。
查看手册,在新程序开头添加一个语句就OK了。

DBGMCU->CR &= ~0x00000002;           // 关闭低功耗下的调试模式
ataudio 回答时间:2019-10-17 11:10:24
版主,怎么结贴啊。。@安   @STMCU
mylovemcu 回答时间:2019-10-17 11:15:05
ataudio 发表于 2019-10-17 11:10
版主,怎么结贴啊。。@安   @STMCU

重新编辑  将求助改成已解决

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版