為什麼32的嘀嗒定時器在低功耗stop模式喚醒後會比較緩慢
阿新 • • 發佈:2019-01-08
首先我們看到M4的程式設計手冊,裡面有systick的時鐘來源介紹,可以看到systick的計數源的AHB或者AHB/8。
systick的配置函式如下,可以看到選擇的時鐘源時AHB。
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ SysTick->LOAD = ticks - 1; /* set reload register */ NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ SysTick->VAL = 0; /* Load the SysTick Counter Value */ SysTick->CTRL = <strong>SysTick_CTRL_CLKSOURCE_Msk </strong>| SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0); /* Function successful */ }
接著我們來看下AHB這個時鐘部分,AHB在系統的時鐘配置函式下是180M,所以systick的時鐘頻率一般都是180M。
在CPU從stop模式被喚醒之後,由於HSE的外部時鐘被關閉了,用的是HSI,所以就變慢了