最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt

最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt

ID:62260361

大小:565.50 KB

页数:26页

时间:2021-04-24

最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt_第1页
最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt_第2页
最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt_第3页
最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt_第4页
最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt_第5页
资源描述:

《最新STM32利用捕获功能完成脉冲宽度测量解析教学讲义PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、STM32利用捕获功能完成脉冲宽度测量解析简介在定时器中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种。STM32F1除了基本定时器TIM6和TIM7,其他定时器都具有输入捕获功能。输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,通常用于测量输入信号的脉宽、测量PWM输入信号的频率及占空比。简介输入捕获的工作原理比较简单,在输入捕获模式下,当相应的ICx信号检测到跳变沿后,将使用捕获/比较寄存器(TIMx_CCRx)来锁存计数器的值。从而完成一次捕获。同时还可以配置捕获时是否触发中断/DMA等。如果使用TIM5和PA

2、0作为捕获引脚(2)初始化定时器参数,包含自动重装值,分频系数,计数方式等要使用定时器功能,必须对定时器内相关参数初始化,其库函数如下:voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct);(3)设置通用定时器的输入捕获参数,开启输入捕获功能初始化定时器后,需要设置对应输入捕获通道参数,比如输入通道、滤波、分频系数、映射关系、捕获极性等。输入捕获参数初始化函数如下:voidTIM_ICInit(TIM_TypeDef*T

3、IMx,TIM_ICInitTypeDef*TIM_ICInitStruct);如果使用TIM5和PA0作为捕获引脚如果我们需要配置TIM5的通道1为输入捕获功能,并且为上升沿捕获、不分频、直接映射到TI,可以如下配置:TIM_ICInitTypeDefTIM_ICInitStructure;TIM_ICInitStructure.TIM_Channel=TIM_Channel_1;//通道1TIM_ICInitStructure.TIM_ICFilter=0x00;//滤波TIM_ICInitStructure.TIM_ICPolar

4、ity=TIM_ICPolarity_Rising;//捕获极性TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;//分频系数TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;//直接映射到TI1TIM_ICInit(TIM5,&TIM_ICInitStructure);如果使用TIM5和PA0作为捕获引脚(4)开启捕获和定时器溢出(更新)中断假如我们需要检测输入信号的高电平脉宽,就需要在第一次上升沿到来时捕获一次

5、,然后设置为下降沿捕获,等到下降沿到来时又捕获一次。如果输入信号的高电平脉宽比较长,那么定时器就可能溢出,所以需要对定时器溢出进行处理,否则计算的高电平时间将不准。所以需要开启定时器溢出中断。如果使用TIM5和PA0作为捕获引脚假如我们要开启TIM5的捕获中断和定时器溢出中断,调用函数如下:TIM_ITConfig(TIM5,TIM_IT_Update

6、TIM_IT_CC1,ENABLE);(5)设置定时器中断优先级,使能定时器中断通道在上一步我们已经使能了定时器的捕获和更新中断,只要使用到中断,就必需对NVIC初始化,NVIC初始化库

7、函数是NVIC_Init()如果使用TIM5和PA0作为捕获引脚(6)编写定时器中断服务函数最后我们还需要编写一个定时器中断服务函数,通过中断函数处理定时器产生的相关中断。TIM5中断函数名如下:TIM5_IRQHandler因为定时器的中断类型有很多,所以进入中断后,我们需要在中断服务函数开头处判断是哪种类型,根据不同中断类型完成相应功能,比如我们需要在捕获中断内完成捕获成功记录,更新中断内完成溢出次数的累计。中断状态标志位的函数如下:ITStatusTIM_GetITStatus(TIM_TypeDef*TIMx,uint16_tT

8、IM_IT)如果使用TIM5和PA0作为捕获引脚(7)使能定时器前面几个步骤已经将定时器输入捕获配置好,但还不能正常使用,只有开启定时器了才能让它正常工作,开启定时器的库函数如下:voidTIM_Cmd(TIM_TypeDef*TIMx,FunctionalStateNewState);使能TIM5的函数是TIM_Cmd(TIM5,ENABLE);//开启定时器捕获程序需要区分是捕获中断还是定时器更新中断设置全局变量记录捕获状态和定时器更新次数在捕获到高电平后要改变捕获极性为低电平捕获如何更新中断发生次数超过记录极限,强制设置捕获完成状

9、态余角、补角14算一算,填一填∠1∠2∠1+∠272o18o66.78o23.22o59o19'35"30o40'25"113o67o95.37o84.63o89o28'90o32'90o90o90o180

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。