目录
预分频系数
重装载值
设置STM32CubeMX
正文
预分频系数
预分频系数就是将你使用的时钟的频率以预分频系数为单位分割,如现在使用的是80MHz频率的时钟,预分频系数设置为80,那就是将原本的80次计数看成是1次,时钟的频率因为变成了 80M/80 = 1MHz。也就是改定时器再一秒内会计数1M次。
重装载值
重装载值就是当定时器的计算器计数到这个值之后,就会发生溢出,产生中断,然后重新装载为0。我们继续以上面例子为例,时钟频率为80MHz,预分频系数为80,假设我们需要定时10毫秒,现在是定时器是每秒计数1M次,也就是说一微秒计数一次,我们要定10毫秒,也就是10000微秒,即计算器从0计数到10000就是10毫秒,所以我们就将重装载值定为10000。
特别注意:以上的预分频系数设置为80,重装载值设置为10000都是为了讲解方便,但是数值都是错误的,需要设置为80-1和10000-1才是正确的。因为都是从0开始计数,也就是0~(80-1)才是80个数,10000-1同理。
设置STM32CubeMX
打开软件后,先在Clock Configuration中将以下紫框中需要更改的完成更改,时钟频率为80HMz。
选择一个定时器,选择内部时钟,我们设置一个定时要求是0.01秒的定时器:
预分频系数设置为80-1,重装载值设置为10000-1,时钟频率为80HMz,80M/80/10000 = 100;
也就是每一秒钟产生100次中断,每次时间间隔为0.01秒。