您的位置:首页 > 运维架构

为什么32的嘀嗒定时器在低功耗stop模式唤醒后会比较缓慢

2015-09-26 08:57 537 查看
首先我们看到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,所以就变慢了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息