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

stm32wb55 使用Ble协议栈, 进入stop模式后, 长时间运行死机

[复制链接]
yangtai 提问时间:2023-6-25 11:10 / 未解决

stm32wb55 使用Ble协议栈, 进入stop模式后,电流由7ma降低到50ua, 在50ua的stop模式运行一段时间(几天的时间),出现死机。死机时发现电流变为6.8ma。 如果机器不进入stop模式,永远不会死机。所有初步判断是由于低功耗的stop模式引起的,这个问题如何分析,如何定位,如何解决呢?

收藏 评论5 发布时间:2023-6-25 11:10

举报

5个回答
butterflyspring 回答时间:2023-6-26 09:50:41
这种状态很像MCU进入低功耗逻辑故障。
进入低功耗前需要将清除各种pending 位,关掉不需要的中断。否则有机会进入故障状态。

清除中断需要注意:不要仅仅关闭内核部分,还要处理外设部分,否则在执行STOP位前容易概率性发生pending 位存在导致故障发生。
yangtai 回答时间:2023-6-26 19:42:17

butterflyspring 发表于 2023-6-26 09:50
这种状态很像MCU进入低功耗逻辑故障。
进入低功耗前需要将清除各种pending 位,关掉不需要的中断。否则有机 ...

butterflyspring,谢谢你的回复和指点。项目外部GPIO口有2个中断,在进入中断函数前,做了Clear the EXTI's line pending bits. 的处理。如下:

void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { / EXTI line interrupt detected / if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u) { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); //Clear the EXTI's line pending bits. HAL_GPIO_EXTI_Callback(GPIO_Pin); //进入中断处理函数,处理自定义功能 } }

项目是居于freeRTOS系统开发的,使用到软件计时器: HW_TS_Create //创建虚拟软件计时器, 它基于RTC现实的虚拟软件计时器。这个软件定时器是一直开的,进入stop模式待机也没关,不知道是否有影响。这2软件计时器不能关,因为产品需求要一直开着。

轻灵晴川 回答时间:2023-7-14 09:38:42

遇到同样的问题

duanzhe 回答时间:2024-1-31 23:46:04

您好,请问您这个问题最终解决了吗,如何解决的,可以交流一下吗

24kdewhite 回答时间:2024-4-7 11:50:14

楼主解决了吗,我也遇到了,并且比你的更严重,运行几分钟或个把小时就遇到了。。我使用裸机,难搞的很

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