一、步骤
1、RCC开启时钟,此时定时器的基准时钟和整个外设的工作时钟都打开
2、选择时基单元的时钟源,对于定时中断选择内部时钟源
3、配置时基单元,包括预分频器,自动重装器,计数模式等
4、配置输出中断控制允许更新中断输出到NVIC
5、配置NVIC,在NVIC中打开定时器中断的通道,并分配一个优先级
6、运行控制,配置完成后,需要对计数器进行使能,否则计数器无法运行
计数器更新时,触发中断,最后再写一个定时器中断函数。
二、函数的调用
1、基本函数
- TIM_DeInit(TIM_TypeDef* TIMx);,恢复缺失配置
- TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);,时基单元初始化。
- 两个参数,第一个,TIMx选择某个定时器;第二个,是结构体,包含了配置时基单元的一些参数
- TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);把结构体变量赋一个默认值
- TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);使能计数器,对应图中的运行控制;两个参数:第一个,选择定时器;第二个,选择使能还是失能
- TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);是用来使能中断输出信号,对应图中的中断输出控制,三个参数:第一个,选择定时器;第二个,第二个,选择要配置哪个中断输出;第三个,选择使能还是失能
2、时基单元的时钟选择
接下来的6个函数,对应时基单元的时钟选择部分,可以选择RCC内部时钟,ETR外部时钟,ITRx其他定时器,TIx捕获通道。如图2-1所示
图2-1
- 1、TIM_InternalClockConfig(TIM_TypeDef* TIMx);选择内部时钟,RCC内部时钟—>内部时钟模式—>时基单元
- 2、TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);选择ITRx其他定时器的时钟,两个参数,第一个,选择要配置的定时器,第二个,选择要接入哪个其他的定时器,ITRx其他定时器—>外部时钟模式1—>时基单元
- 3、TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,
- uint16_t TIM_ICPolarity, uint16_t ICFilter);
- 第二个