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

仿真器升级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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版