STM32定时器的定时时间设置
定时1ms
定时器定时频率=时钟源频率/ [(PSC+1)(ARR+1)]=16M/[(15+1)(999+1)]=1000Hz,所以定时的时间为1ms.
简单理解 16M的意思是1S可以计数 16000000 次
先进行16预分频 1S可以计数1000000 次
此时, 1ms可以计数1000 次
所以1ms的自动重装值是 1000
也就是从0 计数到1000 后 1ms 也就到了
定时1S
定时器定时频率=时钟源频率/ [(PSC+1)(ARR+1)]=16M/[(1599+1)(9999+1)]=1,所以定时的时间为1s.
预分频1600
定时10ms
定时器定时频率=时钟源频率/ [(PSC+1)(ARR+1)]=16M/[(15+1)(999+1)]=1000Hz,所以定时的时间为1s.
定时器有如下三种计数模式:(上面采用的是递增计数模式)
递增计数模式:计数器从 0 计数到自动重载值,然后重新从 0 开始计数并生成计数器上溢事件。
递减计数模式:计数器从自动重载值开始递减到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。
中心对齐模式:计数器从 0 开始计数到自动重载值 – 1 ,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。
最后别忘记 在初始化之后启动定时中断
HAL_TIM_Base_Start_IT(&htim17);