《STM32F4输入波形捕获的频率计算(共5页).doc》由会员分享,可在线阅读,更多相关《STM32F4输入波形捕获的频率计算(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上申明一下,这个是转自昵称:博客的文章,因为自己在找计算频率这一块走了很多弯路,网上鱼龙混杂,所以推荐如下:概述本文在前面文章“STM32基本的计数原理”的基础上进行拓展,讲述关于“定时器输入捕获”的功能,和上一篇文章“定时器比较输出”区别还是挺大的。在引脚上刚好相反:一个输入、一个输出。本文只使用一个TIM5通道3(也可其他通道)捕获输入脉冲的频率,通过捕获两次输入脉冲的间隔时间来计算脉冲波形的频率。间隔一定时间读取频率并通过串口打印出来。当然也可通过两路通道捕获脉冲信号的占空比,计划后期整理。笔者通过信号发生器产生信号,上位机串口助手显示捕获的脉冲频率。(没有信号发
2、生器的朋友可以结合上一篇文章PWM输出做信号源:在同一块板子上也可以使用不同定时器,将输出引脚接在输入引脚)源代码分析笔者以F4标准外设库(同时也建议初学者使用官方的标准外设库)为基础建立的工程,主要以库的方式来讲述。1.RCC时钟本文提供的例程也可以使用TIM2(只要将例程源代码中使用到的TIM5改为TIM2,以及引脚改正过来就行)。重点注意:A.外设RCC时钟的配置要在其外设初始化的前面;B.匹配对应时钟。比如:RCC_APB2外设不要配置在RCC_APB1时钟里面【如:RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);这样能编译通
3、过,但这是错误的代码】2. TIM输入捕获引脚配置该函数位于timer.c文件下面;注意2点:A.引脚与通道对应:这个需要参看“数据手册”,该文TIM5通道3对应的引脚就是PA2.B.复用配置:GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_TIM5);这个地方对于F1转F0、F4等的朋友需要注意,更加芯片系列及库的不同,他们之间存在一定的差异。3. TIM输入捕获配置该函数位于timer.c文件下面;“时基部分”是在前面两篇文章讲述过的,这里主要对“输入捕获”部分理解,主要5个参数:捕获通道:就是我们捕获的通道;捕获极性:就是我们捕获脉冲的高
4、还是低电平;捕获选择:是直接捕获该通道,还是上面说的1,2通道协助捕获;捕获分频:对捕获的脉冲分频;捕获滤波:过滤掉波形;4. NVIC配置5. 计算捕获波形频率原理该函数位于stm32f4xx_it.c文件下面;该函数是中断函数,也是计算频率重要的函数;A.两次捕获值捕获配置中,捕获的极性是高电平,这里就是在“上升沿”中断(捕获),如果配置为“下降沿”,则是在信号的下降沿中断。B.计算两次捕获差值这里常人理解都是:capture = (capture_value2 - capture_value1);但是,需要考虑另外两种情况,就是计数器在计满和相等时候。C.计算频率这里可以理解为:1秒钟计了多少个数。但是需要注意的是截图中“/2”,对系统时钟除2,原因在于RCC给TIM提供的时钟就是除了2的,所以,这个地方需要/2.专心-专注-专业