教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

stm32 PWM输入捕获(3)

来源:网络收集 时间:2026-09-07
导读: 红色箭头所指,这才找到原因,触发的信号源只有这四种,而通道3上的计数器的值不可能在接受到信号的上升沿时候,有复位这个动作,找到原因了。这就是3通道上的数据不停跳动的原因,要想的到信号的频率也是有办法的

红色箭头所指,这才找到原因,触发的信号源只有这四种,而通道3上的计数器的值不可能在接受到信号的上升沿时候,有复位这个动作,找到原因了。这就是3通道上的数据不停跳动的原因,要想的到信号的频率也是有办法的,可以取连续两次捕捉的值之差,这个值就是信号的周期,自己根据实际情况去算频率吧。 有以上可以得到:

stm32的TIM的四个通道可以同时配置成输入捕捉模式,但是计算CH3,CH4信号的频率步骤有点繁琐(取前后捕捉的差值),但是他的CH1,和CH2可以轻松得到: 通道1

/* Select the TIM2 Input Trigger: TI2FP2 【输入触发源选择】*/

TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1); //参考TIM结构图选择滤波后的TI1输入作为触发源,触发下面程序的复位 /* Select the slave Mode: Reset Mode */

TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); //复位模式-选中的触发输入(TRGI)的上升沿初始化计数器,并且产生一个更新线号 TIMx->CRR1的值即为信号的周期 通道2:

TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2); //参考TIM结构图选择滤波后的TI1输入作为触发源,触发下面程序的复位 /* Select the slave Mode: Reset Mode */

TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); //复位模式-选中的触发输入(TRGI)的上升沿初始化计数器,并且产生一个更新线号 TIMx->CRR2的值即为信号的周期

//======================================================

发布时间:

TIM设置为输入捕获模式的出现的问题 技术类别:ARM

在应用的时候将将TIM2的CH1,Ch2两个通道设置为输入捕获模式,为了测量路信号的频率

关于TIM2的配置如下

TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; //配置为输入捕获模式

TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //选择通道1

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_ICInit(TIM2, &TIM_ICInitStructure);

TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; //配置为输入捕获模式

TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; //选择通道2

TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //输入上升沿捕获

TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; // 通道方向选择

2008-10-14 19:14:10

TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //每次检测到捕获输入就触发一次捕获

TIM_ICInitStructure.TIM_ICFilter = 0x0; //

TIM_ICInit(TIM2, &TIM_ICInitStructure);

/* Select the TIM2 Input Trigger: TI2FP2 【输入触发源选择】*/

TIM_SelectInputTrigger(TIM2,TIM_TS_TI1FP1); //参考TIM结构图选择滤波后的TI2输入 寄存器SMCR

/* Select the slave Mode: Reset Mode */

TIM_SelectSlaveMode(TIM2,TIM_SlaveMode_Reset); //复位模式-选中的触发输入(TRGI)的上升沿初始化计数器,并且产生一个更新线号

/* Enable the Master/Slave Mode */

TIM_SelectMasterSlaveMode(TIM2,TIM_MasterSlaveMode_Enable); //主从模式选择

这里注意了 TIM_SelectInputTrigger(TIM2,TIM_TS_TI1FP1); //参考TIM结构图选择滤波后的TI2输入 寄存器SMCR

如果这么设置的输入触发源为TI1FP1 我只是要捕捉CH1的信号频率 ,但是CH2不接信号读出来的数据跟CH1一模一样,如果设置为

TIM_SelectInputTrigger(TIM2,TIM_TS_TI2FP2); 设置的输入触发源为TI2FP2,那么就能准确的读回来

CH2上的信号频率,此时CH1没有接信号度回来全部是0

为什么设置了前者TIM_SelectInputTrigger(TIM2,TIM_TS_TI1FP1); 两个通道CH1,CH2都有数据呢 纳闷中

希望这个不会是STM32的bug,正在寻找解决的办法。。。。

答案:你应该选择pwmi模式才能两个联起来,一个测频率,一个测占空比 正解

、、=====================================================================================================

调试的过程中,总能遇到一些问题,很庆幸能遇到那么多的问题,也许这就是最好的学习过程:

继续我的笔记:

在main函数中,文件名:main.c 对TIM2的CH1,CH2配置如下:

TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; //配置为输入捕获模式

TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; //选择通道1 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_ICInit(TIM2, &TIM_ICInitStructure);

TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; //配置为输入捕获模式

TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; //选择通道2 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_ICInit(TIM2, &TIM_ICInitStructure);

TIM1->PSC = 10; //由于要测量的信号频率为200-1000HZ 采取10倍的预分频

TIM2->PSC = 10; //如果不分频最小的频率为1100hz,分频后可以测量的频率为110HZ,为了达到最佳捕捉效果,且满足要求建议分频系数设为6;

/* Select the …… 此处隐藏:2746字,全部文档内容请下载后查看。喜欢就下载吧 ……

stm32 PWM输入捕获(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/436323.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)