嵌入式 STM32 定时器知识点

机械周期:单片机完成一个操作的最短时间。机械周期主要针对汇编语言,在汇编语言下程序每一条执行所使用时间都是机械周期的整数倍。51标准架构下,一个机械周期是12个时钟周期,12M晶振下等于12*1/12000000秒。

51这么设计是历史的原因(毕竟它已经是30年前的老古董了),所以有机器周期和时钟周期的区别。而STM32则没有这个概念,机器周期就是时钟周期。需要注意的是,最新型号的51已经不遵守“12机器周期等于1时钟周期”这个规则了,STC的新型号51早就做到了1机器周期等于1时钟周期。从这点来说已经跟STM32已经是一样的了。

时钟周期:时钟周期T是时序中的最小时间单位,具体计算的方法就是1/时钟频率。
假如晶振频率为168M,则时钟周期=1/168000000秒

时间(重载值)计算举例

时钟源168M
根据实际需要进行8分频后得到频率为
21M/s (单位是s)

即定时器计数一次的时间为 1s/21M

也就是
1X10^6 / 21X10^6=1/21 us(单位是us)

所以定时器数21次才等于1us的时间。

因为我们要想得到time us的时间所以我们的定时器要数21*time次,则我们的重载值(即设定定时器定时时间的最大值)应该为
time us = time * 21

因为定时器是从0开始算起的,每数1us都要-1所以
重载值 = time * 20

猜你喜欢

转载自blog.csdn.net/weixin_44291381/article/details/114777295