16479|29

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

输入捕获测量频率有误差怎么办 [复制链接]

试着用输入捕获模式来测量输入信号的频率。。结果算出来和实际值相差很大,请大家帮忙分析一下原因吧,谢谢啊

程序:
EXTI_InitStructure.EXTI_Line = EXTI_Line3;
??EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
??EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
??EXTI_InitStructure.EXTI_LineCmd = ENABLE;
??EXTI_Init(&EXTI_InitStructure);
??
??TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP;? ?? ?? ?? ?? ???//配置为输入捕获模式? ?? ?? ?
??TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;? ?? ?? ?? ?? ?? ?? ?//选择通道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);
??
? ? /* Select the TIM2 Input Trigger: TI2FP2 【输入触发源选择】*/
? TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1);? ?? ?? ?? ?? ?? ?? ??

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

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


??TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);
??/* Enable the CC2 Interrupt Request */
??TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE);

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


最后在程序中通过TIM_GetCapture1(TIM2);读取值。。。结果误差很大。。。
请问这样做的问题出在哪?
此帖出自stm32/stm8论坛

最新回复

发现官方库测得挺准的  详情 回复 发表于 2016-4-13 17:45
点赞 关注
 

回复
举报

56

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1)看看STM32固件库中的例程
2)看看旧帖,比如这个:TIM捕获频率不正确
此帖出自stm32/stm8论坛
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 


请问固件库是官网里面的那些程序吗?貌似没有找到定时器的啊。。。
能帮忙给个链接吗?谢谢
此帖出自stm32/stm8论坛
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

4
 
STM32F10x_StdPeriph_Lib - ARM-based 32-bit MCU STM32F10x Standard Peripheral Library
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 

请问通过捕获测量到频率需要多长时间?还有结果是实时更新的吗?
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 你确定你算频率的方式是对的吗,包括对定时器的配置
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
你输入信号的频率是多少?
定时器又是怎么配置的?
中断怎么写的?
都贴出来,呵呵。
我刚弄过这一块,还算熟悉
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

8
 

我信号的频率是在一定范围内变化的,程序是拿官网的DEMO改的
是不是只能测量固定频率的信号啊?
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
4# 版主
请问通过捕获测量到频率需要多长时间?还有结果是实时更新的吗?
只需一个周期即可测量到频率,结果是实时更新的。
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 

请问一个周期是指每一次定时器中断吗?还是指输入信号的一个周期?
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 当然是指输入信号的一个周期,不然怎么能结果是实时更新的呢。
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

12
 

哦。。那如果我在程序中不是每时每刻都需要测量频率,就是在需要的时候打开定时器测量频率,然后就关闭它。这个方法可行吗?或者有其他更好的方法吗?
此帖出自stm32/stm8论坛
 
 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

13
 
11# 版主
哦。。那如果我在程序中不是每时每刻都需要测量频率,就是在需要的时候打开定时器测量频率,然后就关闭它。这个方法可行吗?或者有其他更好的方法吗? ...
请问“实时更新”是什么意思?“只需一个周期即可测量到频率”是什么意思?
此帖出自stm32/stm8论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

14
 

意思是我需要的时候直接去读寄存器里的值就可以了是吗?
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

15
 
                                 你不用中断,没必要关定时器,只需读取它的值就可以了,不影响其他程序
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

16
 

可以不使用中断就测出频率吗?
此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

17
 
                                 学习了
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

18
 
从LZ的话语中,感觉LZ应该先看一下什么叫频率稳定度? 频率测量的几种方法.测量信号周期有几种方** 不要告诉我测量频率和测量周期是一样的,只是倒数关系.

然后根据实现情况设置一个测频率时间----测频闸门

倒过来讲:
STM32在信号频率不太高时一个周期就能测量频率了.
-----------但那是不准的. --->不是STM32性能不好,是测量方法不好!

再用STM32测量100个--->10000个信号周期的时间差,再除于100--->10000后,那测量结果应该比较准了.  

呵呵!
此帖出自stm32/stm8论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

19
 

呵呵,十分感谢您的帮忙和建议。小弟最近才开始接触硬件,所以有些迷糊呵呵。
我要求测的信号频率大概在150KHZ左右,测量结果误差小于0.1KHZ就行,通过捕获的方式误差应该不会超过这个吧?
此帖出自stm32/stm8论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

20
 
                                 你确定下来最短可接收测频闸门时间是多少啊?
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表