本帖最后由 helenhll 于 2014-11-12 16:22 编辑
改成TIM8也不行,情况和TIM1一样,TIM8的配置程序
RCC->APB2ENR |= RCC_APB2Periph_TIM8;
sysPinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_TIM8);
sysPinAFConfig(GPIOB, GPIO_PinSource1, GPIO_AF_TIM8);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
sysPinInit(GPIOB, &GPIO_InitStructure);
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; //死区控制用。
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数器方向
TIM_TimeBaseInitStructure.TIM_Prescaler = 41; //Timer clock = sysclock /(TIM_Prescaler+1) = 2M
TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInitStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseInit(TIM8,&TIM_TimeBaseInitStructure);
TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
TIM_ICInitStructure.TIM_ICFilter = 0;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInit(TIM8,&TIM_ICInitStructure);
TIM_SelectInputTrigger(TIM8, TIM_TS_TI1FP1);
TIM_SelectSlaveMode(TIM8, TIM_SlaveMode_Reset );//触发方式
TIM_SelectMasterSlaveMode(TIM8, TIM_MasterSlaveMode_Enable); //
TIM_ClearITPendingBit(TIM8, TIM_IT_CC2);
TIM_ITConfig(TIM8, TIM_IT_CC2, ENABLE);
stm32fIntEnable(TIM8_CC_IRQn, INT_PRIO_1MS);
TIM8->CR1 |= TIM_CR1_CEN;