问题:
STM32F103跳过停止模式,不能进入停止模式stopmode
static voidled_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(); }
解决办法:
|