进入低功耗前设置LSI为电源。halt前如下:
CLK_LSICmd(ENABLE);
while(((CLK->ICKCR)&0x10)!= 0x10);//等待目标时钟准备好
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);
CLK_SYSCLKSourceSwitchCmd(ENABLE);
while (((CLK->SWCR)& 0x01)==0x01);//切换已好
while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSI);//确认转换完成
// CLK_SYSCLKSourceSwitchCmd(DISABLE);
// while (((CLK->SWCR)& 0x01)==0x01);//等待时钟切换完成
CLK_PeripheralClockConfig(CLK_Peripheral_TIM4, DISABLE);
CLK_HSICmd(DISABLE);
PWR->CSR2 = 0x2;
但是run了老是出问题,提示SWIM ERROR什么的,去掉上面这些后,正常。断点一步一步调试,在这句CLK_SYSCLKSourceSwitchCmd(ENABLE);出现run中出现的错误。不知道怎么回事,望指教,感激不尽。 |