|
发表于 2015-3-28 09:52:46
|
显示全部楼层
- void Tmr3_Config(void)
- {
- TIM_TimeBaseInitTypeDef TIM_TmrBaseInitStructure;
- TIM_ICInitTypeDef TIM_ICInitStruct;
-
- Tmr3_GPIO_Config();
-
- /* 开启定时器3的时钟 */
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
-
- /* 为定时器3设置内部时钟为计数源 */
- TIM_InternalClockConfig(TIM3);
-
- /* 定时器设置为向上计数模式 */
- TIM_TmrBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
- /* 定时器的周期设置 */
- TIM_TmrBaseInitStructure.TIM_Period = 10000-1;
- /* 分频系数为7200 */
- TIM_TmrBaseInitStructure.TIM_Prescaler = 7200-1;
- /* fDTS的分频系数 */
- TIM_TmrBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
- /* 设置定时器3时基 */
- TIM_TimeBaseInit(TIM3,&TIM_TmrBaseInitStructure);
-
- TIM_SelectSlaveMode(TIM3,TIM_SlaveMode_Reset);
-
- /* 设置通道1为输入通道 */
- TIM_ICInitStruct.TIM_Channel = TIM_Channel_1;
- /* 关闭滤波器 */
- TIM_ICInitStruct.TIM_ICFilter = 0x0;
- /* 设置触发源为上升沿 */
- TIM_ICInitStruct.TIM_ICPolarity = TIM_ICPolarity_Falling;
- /* 触发源分频系数为1 */
- TIM_ICInitStruct.TIM_ICPrescaler = TIM_ICPSC_DIV1;
- /* 选择通道1为触发源 */
- TIM_ICInitStruct.TIM_ICSelection = TIM_ICSelection_DirectTI;
- /* 设置定时器3通道1为输入 */
- TIM_ICInit(TIM3,&TIM_ICInitStruct);
-
- /* 设置通道2为输入通道 */
- TIM_ICInitStruct.TIM_Channel = TIM_Channel_2;
- /* 关闭滤波器 */
- // TIM_ICInitStruct.TIM_ICFilter = 0x4; //不用进行设置
- /* 设置触发源为上升沿 */
- TIM_ICInitStruct.TIM_ICPolarity = TIM_ICPolarity_Rising ;
- /* 触发源分频系数为1 */
- TIM_ICInitStruct.TIM_ICPrescaler = TIM_ICPSC_DIV1;
- /* 选择通道1为触发源 */
- TIM_ICInitStruct.TIM_ICSelection = TIM_ICSelection_IndirectTI;
- /* 设置定时器3通道1为输入 */
- TIM_ICInit(TIM3,&TIM_ICInitStruct);
-
- /* 重置模式设置通道2为触发源 */
- TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2);
- /* 配置定时器通道2的中断 */
- TIM_ITConfig(TIM3,TIM_IT_CC2,ENABLE);
- /* 开启定时器3 */
- TIM_Cmd(TIM3,ENABLE);
- }
复制代码 |
|