初级会员

- 积分
- 77
- 金钱
- 77
- 注册时间
- 2017-9-18
- 在线时间
- 20 小时
|
TIM_HandleTypeDef TIM2_Handler; void TIM2_Cap_Init(u16 arr,u16 psc)
{
TIM_IC_InitTypeDef TIM2_CH1Config;
TIM_IC_InitTypeDef TIM2_CH2Config;
TIM2_Handler.Instance=TIM2; //通用定时器5
TIM2_Handler.Init.Prescaler=psc; //分频
TIM2_Handler.Init.CounterMode=TIM_COUNTERMODE_UP; //向上计数器
TIM2_Handler.Init.Period=arr; //自动装载值
TIM2_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
HAL_TIM_IC_Init(&TIM2_Handler);
//通道1
TIM2_CH1Config.ICPolarity=TIM_ICPOLARITY_RISING; //上升沿捕获
TIM2_CH1Config.ICSelection=TIM_ICSELECTION_DIRECTTI;//映射到TI1上
TIM2_CH1Config.ICPrescaler=TIM_ICPSC_DIV1; //配置输入分频,不分频
TIM2_CH1Config.ICFilter=0; //配置输入滤波器,不滤波
HAL_TIM_IC_ConfigChannel(&TIM2_Handler,&TIM2_CH1Config,TIM_CHANNEL_1);//配置TIM2通道1.2
HAL_TIM_IC_Start_IT(&TIM2_Handler,TIM_CHANNEL_1); //开始捕获TIM2的通道1,同时使能捕获中断
__HAL_TIM_ENABLE_IT(&TIM2_Handler,TIM_IT_UPDATE); //使能更新中断
__HAL_RCC_TIM2_CLK_ENABLE(); //使能TIM2时钟
__HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟
////通道2
// TIM2_CH2Config.ICPolarity=TIM_ICPOLARITY_RISING; //上升沿捕获
// TIM2_CH2Config.ICSelection=TIM_ICSELECTION_DIRECTTI;//映射到TI1上
// TIM2_CH2Config.ICPrescaler=TIM_ICPSC_DIV1; //配置输入分频,不分频
// TIM2_CH2Config.ICFilter=0; //配置输入滤波器,不滤波
HAL_TIM_IC_ConfigChannel(&TIM2_Handler,&TIM2_CH2Config,TIM_CHANNEL_2);//配置TIM2通道2
HAL_TIM_IC_Start_IT(&TIM2_Handler,TIM_CHANNEL_2); //开始捕获TIM2的通道2,同时使能捕获中断
// __HAL_TIM_ENABLE_IT(&TIM2_Handler,TIM_IT_UPDATE); //使能更新中断
// __HAL_RCC_TIM2_CLK_ENABLE(); //使能TIM2时钟
// __HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟
}
在配置第二个通道的时候如果将注释的部分保留,那么一通道就无法使用,那如果注释掉了后通道二我想和通道一配置一样是否只需要将 HAL_TIM_IC_ConfigChannel(&TIM2_Handler,&TIM2_CH2Config,TIM_CHANNEL_2);//配置TIM2通道2
中的&TIM2_CH2Config改为&TIM2_CH1Config呢。这样子两个通道都配置好了是吗
|
|