TIM定时器介绍定时器可以对输入的时钟进行计数并在计数值达到设定值时触发中断16 位计数器、预分频器、自动重装寄存器的时基单元在 72MHz 计数时钟下可以实现最大 59.65s 的定时多久数一次、数了多少次、数到多久重新开始不仅具备基本的定时中断功能而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型定时器三种类型基本定时器内部框图预分频器通过给值使分频控制多久数一次例如给0时是系统原来的75MHZ给1时是75/2MHZ因为是16位最大给65535。CNT计数器用来接收记了多少数 自动重装寄存器负责设定设定值达到之后触发中断并清零整个流程结束之后会产生一个向上的更新中断通往NVIC更新中断就能得到CPU相应了一个向下的更新事件用来触发内部其他电路的工作。在基本定时器的第二个功能主模式触发DAC的功能里就是利用了更新事件直接映射到触发输出TRGOTRGO直接接到DAC出发转换引脚上定时器更新就不需要触发中断来完成DAC转化。通用定时器结构框图通用定时器可以用内部时钟计时还添加了外部时钟并且内部事件映射到TRGO可以触发多个寄存器而不仅是DAC外部时钟模式1的输入可以是1.ETR引脚 2.其他定时器 3.CH1引脚边沿 4.CH1引脚 5.CH2引脚边沿定时中断基本结构配备中断函数步骤这里以配置通用定时器TIM2为例1.开启RCC内部时钟。2.选择内部时基的时钟源对于定时器中断选择内部时钟模式即可3.配置时基单元PSC、CNT、ARR。用结构体即可配置4.配置中断输出控制允许更新中断输出到NVIC5.配置NVIC打开定时器的中断通道并配置一个优先级。6.运行控制7.配置完成后还需要使能计数器否则计数器无法工作。最后写一个中断函数这样每隔一段时间中断函数就会自动运行。定时器定时中断代码定时器配置部分1.打开了RCC内部时钟并选择了时钟源。2.配置了时基单元配置中断输出控制3.配置NVIC运行控制。注意TIM_ClearFlag作用清除定时器的状态标志位使从0开始计数。主函数代码在主函数定义了中断函数使得Num可以识别。定时器外部时钟定时器配置部分相较于定时器中断差别在于需要GPIO用来接收外部信号在选择时钟源是选择不同自动重装载值ARR和预分频值PSC进行改变使每触发10次更新一次并且加了Timer_GetCounter函数用来读取TIM当前计数值并返回给调用者。主函数部分注意当通过外部触发产生变化的函数应该注意滤波过滤掉干扰。