STM32输入捕获 仅求频率
时间:10-02
整理:3721RD
点击:
现在PWM输入捕获调通。但是如果我就想测一个周期,或者利用单独的输入捕获(非PWM式)的方法来求占空比,这样我可以利用通道1,2来测两路占空比了吧。
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //使用TIM 通道 2
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //TIM 输入捕获上升沿
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //TIM 输入2,3 或4 选择对应地与 IC1 或IC2 或IC3 或IC4 相连
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_div1; //TIM 捕获在捕获输入上每探测到一个边沿执行一次
TIM_ICInitStructure.TIM_ICFilter = 0x0f; //选择输入比较滤波器
TIM_PWMIConfig(TIM2, &TIM_ICInitStructure);
/* Select the TIM2 Input Trigger: TI2FP2 */
TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1); //TIM 经滤波定时器输入 2
/* Select the slave Mode: Reset Mode */
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); //选中触发信号(TRGI)的上升沿重初始化计数器并触发寄存器的更新
/* Enable the Master/Slave Mode */
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //设置或者重置TIMx主/从模式
/* TIM enable counter */
TIM_Cmd(TIM2, ENABLE);
/* Enable the CC2 Interrupt Request */
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE); //TIM 捕获/ 比较 2 中断源
这是我的PWM输入捕获,似乎网上的资源说的都是这种方法,没有输入捕获。
看32的资料说,PWM输入捕获,也就多设置几个地方。而这个配置,也没看出来是哪个地方多的?
求助这个的话应该怎么去配置。
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //使用TIM 通道 2
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //TIM 输入捕获上升沿
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //TIM 输入2,3 或4 选择对应地与 IC1 或IC2 或IC3 或IC4 相连
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_div1; //TIM 捕获在捕获输入上每探测到一个边沿执行一次
TIM_ICInitStructure.TIM_ICFilter = 0x0f; //选择输入比较滤波器
TIM_PWMIConfig(TIM2, &TIM_ICInitStructure);
/* Select the TIM2 Input Trigger: TI2FP2 */
TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1); //TIM 经滤波定时器输入 2
/* Select the slave Mode: Reset Mode */
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); //选中触发信号(TRGI)的上升沿重初始化计数器并触发寄存器的更新
/* Enable the Master/Slave Mode */
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //设置或者重置TIMx主/从模式
/* TIM enable counter */
TIM_Cmd(TIM2, ENABLE);
/* Enable the CC2 Interrupt Request */
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE); //TIM 捕获/ 比较 2 中断源
这是我的PWM输入捕获,似乎网上的资源说的都是这种方法,没有输入捕获。
看32的资料说,PWM输入捕获,也就多设置几个地方。而这个配置,也没看出来是哪个地方多的?
求助这个的话应该怎么去配置。
这个是我理解错了吗?
TIM_TimeBaseStructure.TIM_Period =60000; //周期0~FFFF
TIM_TimeBaseStructure.TIM_Prescaler = 14; //时钟分频
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);//基本初始化
需要加上这几句
这个只是始终的设置吧?
时钟
我也遇到这个问题了,能测高电平,但是占空比测不出来。
占空比测不出来