STM32F107的通用定时器中断实验总结

本文详细介绍了STM32F107系列微控制器中通用定时器的功能与工作模式,包括向上计数、向下计数及中央对齐模式。此外,还解释了如何配置定时器的时钟分频以及实现定时器中断的方法。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

1.     STM32F107的通用定时器是指:  TIM2、TIM3、TIM4、TIM5、

STM32F107的高级定时器是指:  TIM1、TIM8

STM32F107的基本定时器是指:  TIM6、TIM7

2.     STM32F107的通用定时器(TIM2、TIM3、TIM4、TIM5)的模式有向上计数、向下计数、中央对齐模式。

向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。

中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

3.     STM32F107的通用定时器的时钟选择有多种,一般使用RCC提供的内部时钟TIMxCLK,  由APB1时钟分频提供。

4.     状态标志位获取和清除

FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_tTIM_FLAG);

void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);

ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_tTIM_IT);

void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_tTIM_IT);

 

 

 

定时器中断实现步骤:

1.         定时器时钟使能。   RCC_APB1PeriphClockCmd();

2.        初始化定时器,配置ARR,PSC。    TIM_TimeBaseInit();

3.       开启定时器中断,配置NVIC。     void TIM_ITConfig();    NVIC_Init();

4.      使能定时器。  TIM_Cmd();

5.      编写中断服务函数。    TIMx_IRQHandler();

 

 

 

 

 

1)    TIM_TimeBaseStructure.TIM_ClockDivision这一行代码是干吗的啊

   CKD[1:0]: 时钟分频因子 (Clock division) 这2位定义在定时器时钟(CK_INT)频率、死区时间和由死区发生器与数字滤波器(ETR,TIx)所用的采样时钟之间的分频比例。 00: tDTS = tCK_INT01 : tDTS = 2 x tCK_INT10: tDTS = 4 x tCK_INT 11 :保留,不要使用这个配置

用来屏蔽一些不需要的毛刺的。比如你数字滤波器的频率为1M,N=8,则频率大于1MHz/8=125KHz(持续时间小于8us)的脉冲都会被忽略。可以用在按键消抖之类的。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值