初中生
最后登录1970-1-1
在线时间 小时
注册时间2022-11-16
|
请求大佬指导一下。STM32使用一个定时器捕获2路PWM信号的时候,我在初始化的过程中使用如下的初始化,可是为什么我只能捕获第2个通道的值,第一个通道的值会被覆盖,即GENERAL1_TIM_IC1_CHANEL这里的被替代,
初始化具体代码如下
TIM_ICInitTypeDef TIM4_ICInitStructure;
//捕获通道IC1配置,选择捕获通道
TIM4_ICInitStructure.TIM_Channel =GENERAL1_TIM_IC1_CHANEL; //CC1S=01 选择输入端 IC1映射到TI1上
//设置为上升沿捕获
TIM4_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;
//不滤波
TIM4_ICInitStructure.TIM_ICFilter =0X0;
//1分频,即捕获信号的每个有效边沿都捕获
TIM4_ICInitStructure.TIM_ICPrescaler =TIM_ICPSC_DIV1;
// 设置捕获通道的信号来自于哪个输入通道,有直连和非直连两种,这里选择为直连
TIM4_ICInitStructure.TIM_ICSelection =TIM_ICSelection_DirectTI;
// TIM_ICInit(GENERAL1_TIM,&TIM4_ICInitStructure);
//初始化PWM模式
TIM_PWMIConfig (GENERAL1_TIM,&TIM4_ICInitStructure);
TIM4_ICInitStructure.TIM_Channel =GENERAL1_TIM_IC2_CHANEL; //CC2S 选择输入端 IC2映射到TI2上
TIM_PWMIConfig (GENERAL1_TIM,&TIM4_ICInitStructure);
//TIM_ICInit(GENERAL1_TIM,&TIM4_ICInitStructure);
//选择输入捕获的触发信号
TIM_SelectInputTrigger(GENERAL1_TIM,TIM_TS_TI1FP1);
TIM_SelectInputTrigger(GENERAL1_TIM,TIM_TS_TI2FP2);
//选择从模式:复位模式
//PWM输入模式时,从模式必须工作在复位模式,当捕获开始时,计数器CNT会被复位
TIM_SelectSlaveMode(GENERAL1_TIM, TIM_SlaveMode_Reset);
TIM_SelectMasterSlaveMode (GENERAL1_TIM,TIM_MasterSlaveMode_Enable);
//清除中断标志位
TIM_ClearITPendingBit(GENERAL1_TIM, TIM_IT_CC1 );
TIM_ClearITPendingBit(GENERAL1_TIM, TIM_IT_CC2);
//使能捕获中断,该中断是针对于主捕获通道(测量周期的那个)
TIM_ITConfig (GENERAL1_TIM,TIM_IT_CC1 |TIM_IT_CC2,ENABLE);
TIM_ITConfig (GENERAL1_TIM,TIM_IT_CC2,ENABLE);
//使能计数器
TIM_Cmd (GENERAL1_TIM,ENABLE);
|
|