 
        
        
    | 请问,通过上述代码进入shutdown模式,偶尔会出现进入失败的情况,现象是功耗没有降下去,并且IO口没有被重置,我在进入之前进行了systick关闭和全部中断的禁用,我确认PWR->BDCR1中的PWR_BDCR1_BREN位是0,并且清除了全部的唤醒标志,还给了一定的延时。 | 
配置CubeMX后(STM32H723VGT6),自动生成的代码,编译报错
STM32CubeID V1.19.0 无法识别串口设备
NUCLEO-U575ZI-Q原理图
基于STM32F103的HAL库实现USB(HID) OTA升级
stm32g431rbt怎么显示汉字
STM32N6中使用AI推理的时候调用app_postprocess_init的时候程序卡死
怎么将keil工程更换为vscode工具链?
STM32F429 二级启动程序 (sboot) 开发难点:LD 文件 / 堆栈 / NVIC 及 startup.s 修改疑问
stm32G071RBT6跑TOUCHGFX的时候使用仪表控件,更新数值的时候会卡死,怎么解决
touchgfx添加文字不能显示,直接死(HardFault_Handler)
 微信公众号
                微信公众号
             手机版
                手机版
             
		
	
	
	
确认一下唤醒引脚的电平是否发生变化;有没有收到外界干扰
我在猜想,会不会是程序偶尔跑飞导致进入Shutdown模式的代码没有被执行呢?
至于为什么跑飞----
使用未初始化的指针或者越界访问,导致非法内存访问?
堆栈溢出?
代码逻辑错误或未处理的异常情况,导致程序跑飞或卡死在某处?
硬件故障或电源不稳定,导致程序异常?
程序跑飞确实猜测过,不过我通过调试发现,仅在执行HAL_PWREx_EnterSHUTDOWNMode();接口函数时才可能出现问题,出现问题后CUBEIDE会提示Break at address "0xdeadbeee" with no callstack information available, or outside of program code. 目前我正在排查外部干扰等因素,也在尝试使用最小系统板进行测试。
好的,正在排查
[md]嗯 似乎提示程序运行进入了一个无效状态,更像是发生了非法访问。
可以尝试逐一停止外设,清除事件位,关闭外设,再进入低功耗模式看看
因为我是从LPBAM中中断退出,然后进行一些业务逻辑处理后再进入shutdown模式,会出现可能进入shutdown模式失败的情况,所以我着重看了LPBAM的相关内容,现已查明原因:LPBAM中我使用了两个定时器和由定时器触发的DAC,通过添加DAC关闭的代码,解决了此问题。