(1)利用TIM_DeInit()函数将Timer设置为默认缺省值; (2)TIM_InternalClockConfig()选择TIMx来设置内部时钟源; (3)TIM_Perscaler来设置预分频系数; (4)TIM_ClockDivision来设置时钟分割; (5)TIM_CounterMode来设置计数器模式; (6)TIM_Period来设置自动装入的值 (7) TIM_ARRPerload
Clock Source也就是时钟源,它决定了定时器计数时钟,我们通常会袁勇Internal Clock也就是内部时钟源。 从时钟树中我们可以看到,定时器的时钟由APB2TimerClocks提供,该时钟源来自HCLK主时钟仅分频获得。在正常情况下和HCLK保持一致。 Channel用于配置通道特殊功能大体有四类: 输入捕获,输出比较模式,PWM模式以及强制输出模式...
我们从上往下介绍,Slavemode就是从模式,一般我们用不到它,此处默认不开启,Triggermode是触发模式,选择你的触发源,和定时器中断有关,暂时用不到,默认不开启,Clocksource选择定时的时钟源,有disable,internalclock(内部时钟),ETR2三个选项,一般我们使用internalclock。如果我们使用定时器的PWM功能,输入捕获功能则不必管这...
继续在System文件夹中添加两个文件:Timer.c和Timer.h,用于定时器的设置。 Timer.c代码如下: #include"stm32f10x.h"// Device headervoidTimer_Init(void){ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_InternalClockConfig(TIM2); TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_Tim...
//重新将Timer设置为缺省值 TIM_DeInit(TIM2); //采用内部时钟给TIM2提供时钟源 TIM_InternalClockConfig(TIM2); //预分频系数为36000-1,这样计数器时钟为72MHz/36000 = 2kHz TIM_TimeBaseStructure.TIM_Prescaler = 36000 - 1; //设置时钟分割 ...
void Timer_Init(void) { //第一步,RCC开启时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//开启时钟 //这里注意需要使用APB1开启时钟(TIM2(通用时钟)是APB1总线的外设) //第二步,选择时基单元的时钟源(对于定时中断选择内部时钟源) ...
TIM_DeInit(TIM2); //重新将Timer设置为缺省值 TIM_InternalClockConfig(TIM2); //采用内部时钟给TIM2提供时钟源 TIM_TimeBaseStructure.TIM_Prescaler = 36000 - 1; //预分频系数为36000-1,这样计数器时钟为72MHz/36000 = 2kHz TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割...
#include "Timer.h" uint16_t num = 0; void Timer_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_InternalClockConfig(TIM2); TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInitStruct.TIM_Counter...
TIM_ITRxExternalClockConfig(TIM1,GetInternalTrigger(TIM1,TIM4));/*用TIM4去触发TIM1*//*---*/不是每一种Timer的组合都会有这样触发方式,如果写错了需要能够报出这个错误 可以用一种叫做Compile Time Assert的方法 比如:/*---
选项1 :Internal Clock 内部时钟 选项2 : ETR2 外部触发输入(ETR)(仅适用TIM2,3,4) Prtscaler (定时器分频系数) : 7199 Counter Mode(计数模式) Up(向上计数模式) Counter Period(自动重装载值) : 4999 CKD(时钟分频因子):No Division 不分频