版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用捕获功能完成脉冲宽带测量,Stm32定时器应用,简介,在定时器中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种。STM32F1 除了基本定时器 TIM6 和 TIM7,其他定时器都具有输入捕获功能。输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,通常用于测量输入信号的脉宽、测量 PWM 输入信号的频率及占空比。,简介,输入捕获的工作原理比较简单,在输入捕获模式下,当相应的 ICx 信号检测到跳变沿后,将使用捕获/比较寄存器(TIMx_CCRx)来锁存计数器的值。从而完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等。,捕获原理,t1-t2 时间就是我们需要测量的
2、高电平时间,假如定时器工作在向上计数模式,测量方法是:首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x 为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值记为 CCRx2。根据定时器的计数频率,我们就可以算出 t1-t2 的时间,输入捕获配置步骤,(1)使能定时器及端口时钟,并设置引脚模式等。 因为输入捕获也是通用定时器的一个功能,所以需要使能相应定时器时钟。由于输入捕获通道是对应着 STM32F1 芯片的 IO 口,所以需要使能对应的端口时钟,并将对应 IO 口设置为输入模式功能。,如果使用T
3、IM5和PA0作为捕获引脚,RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);/使能 TIM5 时 钟而 TIM5 的 CH1 通道对应的管脚是 PA0 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;/管脚设置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;/设置下拉输入模式 GPIO_Init(GPIOA, /初始化结构体,如果使用TIM5和PA0作为捕获引脚,(2)初始化定时器参数,包含自动重装值,分频系数,计数方式等 要使用定时器功能,必须对定时器内相关参数初始化,
4、其库函数如下: voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct); (3)设置通用定时器的输入捕获参数,开启输入捕获功能 初始化定时器后,需要设置对应输入捕获通道参数,比如输入通道、滤波、分频系数、映射关系、捕获极性等。输入捕获参数初始化函数如下: void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);,如果使用TIM5和PA0作为捕获引脚,如果我们需要配置 TIM5 的通道 1 为输
5、入捕获功能,并且为上升沿捕获、不分频、直接映射到 TI,可以如下配置: TIM_ICInitTypeDef TIM_ICInitStructure; TIM_ICInitStructure.TIM_Channel=TIM_Channel_1; /通道 1 TIM_ICInitStructure.TIM_ICFilter=0 x00; /滤波 TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;/捕获极性 TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1; /分频系数 TIM_ICI
6、nitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;/直接映射到 TI1 TIM_ICInit(TIM5,如果使用TIM5和PA0作为捕获引脚,(4)开启捕获和定时器溢出(更新)中断 假如我们需要检测输入信号的高电平脉宽,就需要在第一次上升沿到来时捕获一次,然后设置为下降沿捕获,等到下降沿到来时又捕获一次。如果输入信号的高电平脉宽比较长,那么定时器就可能溢出,所以需要对定时器溢出进行处理,否则计算的高电平时间将不准。所以需要开启定时器溢出中断。,如果使用TIM5和PA0作为捕获引脚,假如我们要开启 TIM5 的捕获中断和定时器溢出中断,调
7、用函数如下: TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE); (5)设置定时器中断优先级,使能定时器中断通道在上一步我们已经使能了定时器的捕获和更新中断,只要使用到中断,就必需对 NVIC 初始化,NVIC 初始化库函数是 NVIC_Init(),如果使用TIM5和PA0作为捕获引脚,(6)编写定时器中断服务函数 最后我们还需要编写一个定时器中断服务函数,通过中断函数处理定时器产生的相关中断。TIM5 中断函数名如下: TIM5_IRQHandler 因为定时器的中断类型有很多,所以进入中断后,我们需要在中断服务函数开头处判断是哪种类型,根据不同中断类型完成相应功能,比如我们需要在捕获中断内完成捕获成功记录,更新中断内完成溢出次数的累计。中断状态标志位的函数如下: ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT),如果使用TIM5和PA0作为捕获引脚,(7)使能定时器 前面几个步骤已经将定时器输入捕获配置好,但还不能正常使用,只有开启定时器了才能让它正常工作,开启定时器的库函数如下: void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState); 使能TIM5的函数是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI在移动商务中的应用
- 2026年英语单词记忆游戏教学设计
- 2026年心脑血管病体检项目解读
- 2026年医院洗衣房洗手台污染区管理
- 2026年医院分体空调集中控制与管理
- 2025湖北省中考语文真题(原卷版)
- 2026年育婴员辅食制作与婴幼儿进食习惯培养
- 2026年工程机械驾驶室人机工程学优化
- 2026年车牌识别系统补光灯安装要求
- 2026年糖果用淀粉浇铸成型技术推广
- 2026年上海市奉贤区高三二模数学试卷及答案解析
- 医院屋顶光伏施工造价预算方案模板
- 掺硼金刚石电极的电化学性能与应用研究:从基础原理到实际案例
- 2025年学校管理岗笔试真题题库及答案
- 固体废弃物处理焚烧技术
- 2025年复交浙三位一体笔试真题及答案
- 患者安全和护理风险管理
- 2025年神木县事业单位联考招聘考试历年真题含答案
- 2025版过敏性休克抢救指南(医护实操版)
- 别墅成本测算表
- 无线网络维护记录模板
评论
0/150
提交评论