ST意法半导体
直播中

李英

7年用户 1406经验值
私信 关注
[问答]

使用STM32WB55,退出待机模式后所有外设都需要重复初始化的原因?如何解决?

我的客户在他们的开发中使用 STM32WB55,最近他面临以下问题。
当 WB 进入待机状态时 - 确定。退出待机模式后,所有外设都需要重复初始化(进程、时钟、内存等),但 CPU2 已经处于工作模式(C2DS=0 和 CRPF=1)并且没有与 CPU1 完全通信(进入中断 IPCC_C1_RX_IRQHandler 不在)。
我们已经在ST社区找到了这个问题的解决方案。正如我提到的,有一个软重置。
您能否建议如何避免软重置?




回帖(1)

张博

2023-1-29 12:06:05
即使 CPU2 仍处于 CSTOP(它没有启动),C2DS 位也会从待机状态复位。换句话说,从 Standby 唤醒后该值不正确。
上电后通过设置C2BOOT启动CM0+。从待机唤醒后,这不会产生相同的效果。相反,必须针对 CM0+ 事件输入生成一个事件。在 BLE 示例中,您将遵循同时执行这两项操作的代码。参见示例
STM32Cube_FW_WB_V1.8.0ProjectsP-NUCLEO-WB55.NucleoApplicationsBLEBLE_Peripheral_LiteSrchw_ipcc.c
void HW_IPCC_Enable(无效)
{
/**
  * 当设备退出待机时,需要使用EXTI机制唤醒CPU2
  */
LL_C2_EXTI_EnableEvent_32_63( LL_EXTI_LINE_41 );
LL_EXTI_EnableRisingTrig_32_63( LL_EXTI_LINE_41 );
      
__SEV( ); /* 设置内部事件标志并向 CPU2 发送事件 */
__WFE( ); /* 清除内部事件标志 */
LL_PWR_EnableBootC2( );
返回;
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分