在32开发指南中说:SysTick 的时钟源自 HCLK 的 8 分频,假设我们外部
晶振为 8M,然后倍频到 72M,那么 SysTick 的时钟即为 9Mhz,也就是 SysTick 的计数器
VAL 每减 1,就代表时间过了 1/9us。所以 fac_us=SystemCoreClock/8000000;这句话就是计
算在 SystemCoreClock 时钟频率下延时 1us 需要多少个 SysTick 时钟周期。同理,
fac_ms=(u16)fac_us*1000;就是计算延时 1ms 需要多少个 SysTick 时钟周期,它自然是 1us
的 1000 倍。初始化将计算出 fac_us 和 fac_ms 的值。
想知道为啥是倍频到72M,而不是其他的,硬性规定吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
可以设置成其他频率,但如果需要在应用中使用USB接口, PLL必须被设置为输出48或72MHZ时钟,用于提供48MHz的USBCLK时钟。
这些设置其实跟你外设所需的频率相关,如果单纯的想进行延时,用其他频率也是可以的,但如果加了其他外设,就要认真考虑系统时钟的频率设置了
好的,真棒
一周热门 更多>