定时器最基本的功能就是定时处理事情。比如定时发送USART数据、定时采集AD数据、定时检测IO口电位、还可以通过IO口输出波形等。可以实现非常丰富的功能。定时器是一个很强大的外设,不同行业使用的方式不同,知识面很广。
基本定时器定时
①CK_PSC是定时器时钟TIMxCLK,经APB1预分频器后分频提供。
②定时器时钟经过PSC 预分频器之后,即CK_CNT,用来驱动计数器计数。
③计数器CNT 是一个16 位的计数器,向上,向下,向上/下计数模式,最大计数值为65535。当计数达到自动重装载寄存器的时候产生更新事件,并清零从头开始计数。
④自动重装载寄存器ARR 是一个16位的寄存器,这里面装着计数器能计数的最大数值。当计数到这个值的时候,如果使能了中断的话,定时器就产生溢出中断。
基本定时器,通用定时器,高级定时器三者之间的关系
基本定时器:基本定时器是STM32中功能相对简单的定时器,通常用于生成一定的时间延迟或者周期性的定时操作。基本定时器相对功能较为简单,只能进行基本的定时计数功能,适用于一些简单的定时应用场景。
通用定时器:通用定时器具有更丰富的功能,可以通过编程配置实现不同的定时模式,比如定时计数、输入捕获、输出比较等功能。通用定时器适用于更加复杂的定时应用场景,具有更高的灵活性和精度。通用定时器通常用于需要多个定时通道或者复杂定时功能的应用场景。
高级定时器:高级定时器是STM32中功能最为强大的定时器,具有更高的性能和更丰富的功能选项。可以支持更高的分辨率、更多的定时通道、更复杂的定时功能等特点,适用于需要更高性能定时功能的应用场景。还可以用作PWM输出、编码器接口、高级控制模式等,适用于多种复杂的定时和控制场景。
三种计数模式:
向上计数模式:
在向上计数模式中,计数器从0增加到自动重载值(TIMx_ARR寄存器的值),然后从0重新开始并产生一个计数器溢出事件。
向下计数模式:
在向下计数模式中,计数器从自动重载值(TIMx_ARR寄存器的值)向下计数到0,然后从自动重载值(重新开始并产生一个计数器溢出事件。
中心对齐模式:
在中心对齐模式下,计数器从0 开始计数到自动重载值(TIMx_ARR 寄存器的内容)-1,生成计数器上溢事件;然后从自动重载值开始向下计数到1 并生成计数器下溢事件。之后从0开始重新计数。