|
本帖最后由 zhangzhang 于 2022-6-8 17:02 编辑
代码中配置了TIM1ch1、TIM2CH1、TIM3CH4、TIM4CH1、TIM13CH1,试验现象为TIM1、TIM2、TIM4、TIM13能正常进入捕获中断,另外两个进入不了,有大佬知道这是啥原因吗
TIM_IC_InitTypeDef TIM3_CH4Config;
TIM3_Handler.Instance=TIM3;
TIM3_Handler.Init.Prescaler=2399;
TIM3_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;
TIM3_Handler.Init.Period=49999;
TIM3_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
TIM3_Handler.Init.RepetitionCounter = 0;
TIM3_Handler.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
HAL_TIM_IC_Init(&TIM3_Handler);
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)==0)
{
channel_CAPTURE_STA[2]=0x00;
TIM3_CH4Config.ICPolarity=TIM_ICPOLARITY_RISING;
}
else
{
channel_CAPTURE_STA[2]=0x01;
TIM3_CH4Config.ICPolarity=TIM_ICPOLARITY_FALLING;
}
TIM3_CH4Config.ICSelection=TIM_ICSELECTION_DIRECTTI;
TIM3_CH4Config.ICPrescaler=TIM_ICPSC_DIV1;
TIM3_CH4Config.ICFilter=0;
HAL_TIM_IC_ConfigChannel(&TIM3_Handler,&TIM3_CH4Config,TIM_CHANNEL_4);
HAL_TIM_IC_Start_IT(&TIM3_Handler,TIM_CHANNEL_4);
__HAL_TIM_ENABLE_IT(&TIM3_Handler,TIM_IT_UPDATE);
__HAL_RCC_TIM3_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_9;
GPIO_Initure.Mode=GPIO_MODE_AF_PP;
GPIO_Initure.Pull=GPIO_PULLDOWN;
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;
GPIO_Initure.Alternate=GPIO_AF2_TIM3;
HAL_GPIO_Init(GPIOC,&GPIO_Initure);
HAL_NVIC_SetPriority(TIM3_IRQn,4,0);
HAL_NVIC_EnableIRQ(TIM3_IRQn);
|
|