一、现象描述
在调试国民技术N32G452CCL7 这颗芯片低功耗的时候,发现芯片STOP0模式下Jlink 烧录有异常,进不去低功耗,需要完全断电一次低功耗功能才可以正常运行。
低功耗进入测试代码如下
/* Request to enter SLEEP mode*/
PWR_EnterStopState(PWR_REGULATOR_LOWPOWER, PWR_STOPENTRY_WFE);
/*Reconfig RCC*/
RCC_Configuration();
第一句是进入STOP0的低功耗模式
RCC_Configuration 是恢复系统时钟设置,因为在进入低功耗,系统时钟会切换为内部低速RC时钟
如果正常烧录后断电,会进低功耗,并且会在我配置的RTC下以20s的周期被唤醒
直接jlink SWD方式烧录
根据功耗仪观察jlink烧录情况下,设备未进入过低功耗 而是直接跳过了
二、解决方法
在系统外设初始化的时候加上这三句就可以正常进入低功耗了
三、排查思路
发现jlink烧录有问题后,我对比测试了使用ISP下载方式,ISP下载方式可以进入,那问题就出现在jlink烧录过程中了
综合以上信息应该是jlink烧录时,debug调试功能一直打开某个外部中断,没有关闭导致的(实验时代码里面的RTC和EXTI中断全部关闭了)