STM32-通用定时器基本定时功能
STM32通用定时器基本定时功能 STM32微控制器具有11个定时器,包括2个高级控制定时器、4个普通定时器、2个基本定时器、2个看门狗定时器和1个系统嘀嗒定时器。今天,我们将学习STM32通用定时器的基本定时功能,以TIM2-TIM5普通定时器为例。 让我们了解TIM2-TIM5的时钟来源。TIM2-TIM5的时钟可以来自内部时钟(CK_INT)、外部时钟模式1(外部输入脚TIx)、外部时钟模式2(外部触发输入ETR)或内部触发输入(ITRx)。在今天的学习中,我们将使用内部时钟。 TIM2-TIM5的时钟不是直接来自于APB1,而是来自于输入为APB1的一个倍频器。这个倍频器的作用是:当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其他数值时(即预分频系数为2、4、8或16),这个倍频器起作用,定时器的时钟频率等于APB1的频率的2倍。 TIM2-TIM5可以工作在三个模式:向上计数模式、向下计数模式和向上/向下双向计数模式。在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器内容),然后重新从0开始计数并且产生一个计数器溢出事件。在向下模式中,计数器从自动装入的值开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。中央对齐模式(向上/向下计数)是计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。 现在,让我们来了解TIM2-TIM5的编程步骤。我们需要配置系统时钟、NVIC、GPIO和TIMER。在配置TIMER时,我们需要: 1. 利用TIM_DeInit()函数将Timer设置为默认缺省值; 2. TIM_InternalClockConfig()选择TIMx来设置内部时钟源; 3. TIM_Perscaler来设置预分频系数; 4. TIM_ClockDivision来设置时钟分割; 5. TIM_CounterMode来设置计数器模式; 6. TIM_Period来设置自动装入的值; 7. TIM_ARRPerloadConfig()来设置是否使用预装载缓冲器; 8. TIM_ITConfig()来开启TIMx的中断。 在这些步骤中,TIM_Perscaler用于确定TIMx所使用的时钟频率,具体计算方法为:CK_INT/(TIM_Perscaler+1)。CK_INT是内部时钟源的频率,是根据APB1的倍频器送出的时钟,TIM_Perscaler是用户设定的预分频系数,其值范围是从0–65535。 在了解了TIM2-TIM5的基本定时功能后,我们可以应用于各种实际项目中,例如数字滤波器、PWM输出、事件计时器等等。
剩余10页未读,继续阅读
- zongxinghua2014-01-23讲的比较详细,不妨看下
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助