【TIM】基本定时器定时实验(1)

📅 发布时间:2026/7/9 19:04:17 👁️ 浏览次数:
【TIM】基本定时器定时实验(1)
文章目录前言一、TIM 简介二、 基本定时器三、基本定时器功能框图1.时钟源2.控制器3.计数器4.定时器周期计算四、定时器初始化结构体详解前言定时器 (Timer) 最基本的功能就是定时了比如定时发送 USART 数据、定时采集 AD 数据等等。如果把定时器与 GPIO 结合起来使用的话可以实现非常丰富的功能可以测量输入信号的脉冲宽度可以生产输出波形。定时器生产 PWM 控制电机状态是工业控制普遍方法这方面知识非常有必要深入了解一、TIM 简介STM32F42xxx 系列控制器有 2 个高级控制定时器、 10 个通用定时器和 2 个基本定时器还有 2个看门狗定时器。看门狗定时器不在本章讨论范围有专门讲解的章节。控制器上所有定时器都是彼此独立的不共享任何资源。各个定时器特性参考表各个定时器特性二、 基本定时器基本定时器主要两个功能第一就是基本定时功能生成时基第二就是专门用于驱动数模转换器 (DAC)。控制器有两个基本定时器 TIM6 和 TIM7功能完全一样但所用资源彼此都完全独立可以同时使用。三、基本定时器功能框图1.时钟源基本定时器只能来自时钟内部高级控制定时器可选外部时钟或其他定时器可以根据前面所讲进行配置寄存器RCC_DCKCFGR的TIMPRE位来设置定时器的时钟频率一般设置该位为0即TIMx_CLK 总线时钟 * 2最大定时器时钟为84Mhz。2.控制器定时器控制器实现功能控制定时器复位使能计数等基础功能DAC转换触发3.计数器4.定时器周期计算如果需要1s周期的定时器主要对TIMx_PSC 和 TIMx_ARR 两个寄存器值决定1.先设置TIMx_ARR 9999CNT从0开始计算需要10000次如果时钟源为100微秒即可满足就是CNT 100微秒2.设置预分频器值为TIMx_PSC 8400 - 1因为TIMx_PSC 84Mhz,所以设置为8400四、定时器初始化结构体详解typedefstruct{uint16_tTIM_Prescaler;/*预分频器 */uint16_tTIM_CounterMode;/*计数模式 */uint32_tTIM_Period;/*定时器周期 */uint16_tTIM_ClockDivision;/*时钟分频 */uint8_tTIM_RepetitionCounter;/*重复计算器 */}TIM_TimeBaseInitTypeDef;TIM_Prescaler定时器预分频器设置时钟源经该预分频器才是定时器时钟它设定 TIMx_PSC寄存器的值。可设置范围为 0 至 65535实现 1 至 65536 分频。TIM_CounterMode定时器计数方式可是在为向上计数、向下计数以及三种中心对齐模式。基本定时器只能是向上计数即 TIMx_CNT 只能从 0 开始递增并且无需初始化。TIM_Period定时器周期实际就是设定自动重载寄存器的值在事件生成时更新到影子寄存器。可设置范围为 0 至 65535。TIM_ClockDivision时钟分频设置定时器时钟 CK_INT 频率与数字滤波器采样时钟频率分频比基本定时器没有此功能不用设置。TIM_RepetitionCounter重复计数器属于高级控制寄存器专用寄存器位利用它可以非常容易控制输出 PWM 的个数。这里不用设置。