allenfd 发表于 2019-7-20 11:34:44

TIM CH3 CH4 輸入捕獲問題

大家好
請教一下我要用TIM CH3 CH4來做PWM 輸入捕獲
但是怎麼調試都很怪, 但是換成CH1跟CH2就很正常, 請問有人知道要如何解決嗎?
我需要量Frequency and DutyCycle

wenyangzeng 发表于 2019-7-20 11:56:04

本帖最后由 wenyangzeng 于 2019-7-20 11:59 编辑

楼主没有贴出代码,使用哪个定时器没有描写清楚,假设是TIM1,且CC3配置正确,则在TIM1中断函数里应该能正常捕捉CC3的:
TIM1_CC3部分配置
TIM_ICInitStructure.TIM_Channel = TIM_Channel_3;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x07;
TIM_ICInit(TIM1, &TIM_ICInitStructure);
TIM_Cmd(TIM1, ENABLE);
TIM_ITConfig(TIM3, TIM_IT_CC3, DISABLE);
TIM1中断
void TIM1_IRQHandler(void)
{
      if(TIM_GetITStatus(TIM1, TIM_IT_CC3) == SET)
.
.//捕捉中断处理
.
}

allenfd 发表于 2019-7-20 12:22:25

你好, 我用的是2.0.3的library
TIM_ICInitStructure.TIM_Channel = TIM_Channel_4;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;

TIM_PWMIConfig(TIM2, &TIM_ICInitStructure);

/* Select the TIM2 Input Trigger: TI2FP2 */
TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2);

/* Select the slave Mode: Reset Mode */
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset);

/* Enable the Master/Slave Mode */
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);

/* TIM enable counter */
TIM_Cmd(TIM2, ENABLE);

/* Enable the CC2 Interrupt Request */
TIM_ITConfig(TIM2, TIM_IT_CC4, ENABLE);

我在猜有沒有可能是 TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2);這段出問題?
因為我沒看到TI4FP4的定義? 有可能是我用的library太舊嗎?

wenyangzeng 发表于 2019-7-20 13:23:07

allenfd 发表于 2019-7-20 12:22
你好, 我用的是2.0.3的library
TIM_ICInitStructure.TIM_Channel = TIM_Channel_4;
TIM_ICInitStructur ...

2楼的代码是测试过能正常运行的代码,貌似无需使能TI2FP2
ST官方也有DEMO可以参考的:


edmundlee 发表于 2019-7-20 15:06:03

不太确定, 记得是只有CH1 & 2 可以做输入捕获, 否则CNTR清不了零, 需要当前数据减去前一个数据

allenfd 发表于 2019-7-20 15:20:47

wenyangzeng 发表于 2019-7-20 13:23
2楼的代码是测试过能正常运行的代码,貌似无需使能TI2FP2
ST官方也有DEMO可以参考的:



你好
我用官方代碼在CH1跟CH2都能正常運行
但是換成CH3跟CH4就無法

wenyangzeng 发表于 2019-7-20 17:20:23

本帖最后由 wenyangzeng 于 2019-7-20 17:49 编辑

allenfd 发表于 2019-7-20 15:20
你好
我用官方代碼在CH1跟CH2都能正常運行
但是換成CH3跟CH4就無法
需要检查一下CC3和CC4的初始化代码。另外:
官方这段说明可以参考:




页: [1]
查看完整版本: TIM CH3 CH4 輸入捕獲問題