STM32F103跳过停止模式,不能进入停止模式
问题:
STM32F103跳过停止模式,不能进入停止模式stopmode
static void led_thread_entry(void* parameter)
{
unsigned int count = 0;
rt_hw_led_init();
while(1)
{
rt_hw_led_on(0);
rt_thread_delay(RT_TICK_PER_SECOND / 2);
rt_hw_led_off(0);
rt_thread_delay(RT_TICK_PER_SECOND / 2);
{
//失能 SysTick 计数器
//如果这里不失能 SysTick 计数器,那么会不能进入低功耗模式的
SysTick->CTRL = 0x00;//关闭定时器
SysTick->VAL = 0x00;//清空val,清空定时器
}
{
//进入stopmode低功耗模式
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能 PWR外设时钟
PWR_WakeUpPinCmd(ENABLE); //使能唤醒管脚功能
PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI); //唤醒后时钟变为内置8MHz,需要重新配置RCC,才能正常运行,否则PLL关闭。
}
}
}
/**
*@brief This function handles SysTickHandler.
*@param None
*@retval None
*/
void SysTick_Handler(void)
{
TimingDelay_Decrement();
}
解决办法: