在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,而不是其他的,硬性规定吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
好的,真棒
一周热门 更多>