28 输入捕获实验_第1页
28 输入捕获实验_第2页
28 输入捕获实验_第3页
28 输入捕获实验_第4页
28 输入捕获实验_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

普中STM32开发板带您进入ARM世界 输入捕获实验 普中STM32开发板带您进入ARM世界 本讲主要内容1 输入捕获介绍2 输入捕获配置步骤3 硬件电路4 编写输入捕获控制程序 普中STM32开发板带您进入ARM世界 1 输入捕获介绍1 1输入捕获简介在定时器中断实验章节中我们介绍了通用定时器具有多种功能 输入捕获就是其中一种 STM32F1除了基本定时器TIM6和TIM7 其他定时器都具有输入捕获功能 输入捕获可以对输入的信号的上升沿 下降沿或者双边沿进行捕获 通常用于测量输入信号的脉宽 测量PWM输入信号的频率及占空比 输入捕获的工作原理比较简单 在输入捕获模式下 当相应的ICx信号检测到跳变沿后 将使用捕获 比较寄存器 TIMx CCRx 来锁存计数器的值 简单的说就是通过检测TIMx CHx上的边沿信号 在边沿信号发生跳变 比如上升沿 下降沿 的时候 将当前定时器的值 TIMx CNT 存放到对应的通道的捕获 比较寄存 TIMx CCRx 里面 完成一次捕获 同时还可以配置捕获时是否触发中断 DMA等 下面我们以输入捕获测量脉宽为例 通过一个简图来介绍输入捕获的工作原理 普中STM32开发板带您进入ARM世界 CNT计数的次数等于 N ARR CCRx2 有了这个计数次数 再乘以CNT的计数周期 即可得到t2 t1的时间长度 即高电平持续时间 普中STM32开发板带您进入ARM世界 2 输入捕获配置步骤接下来我们介绍下如何使用库函数对通用定时器的输入捕获进行配置 这个也是在编写程序中必须要了解的 其实输入捕获和前面定时器中断一样也是通用定时器的一个功能 因此还是要用到定时器的相关配置函数 具体步骤如下 定时器相关库函数在stm32f10 x tim c和stm32f10 x tim h文件中 1 使能定时器及端口时钟 并设置引脚复用器映射和引脚模式等RCC APB1PeriphClockCmd RCC APB1Periph TIM5 ENABLE RCC APB2PeriphClockCmd RCC APB2Periph GPIOA ENABLE GPIO InitStructure GPIO Mode GPIO Mode IPD 普中STM32开发板带您进入ARM世界 2 初始化定时器参数 包含自动重装值 分频系数 计数方式等voidTIM TimeBaseInit TIM TypeDef TIMx TIM TimeBaseInitTypeDef TIM TimeBaseInitStruct 3 设置通用定时器的输入捕获参数 开启输入捕获功能voidTIM ICInit TIM TypeDef TIMx TIM ICInitTypeDef TIM ICInitStruct typedefstruct uint16 tTIM Channel 通道uint16 tTIM ICPolarity 捕获极性uint16 tTIM ICSelection 映射uint16 tTIM ICPrescaler 分频系数uint16 tTIM ICFilter 滤波器长度 TIM ICInitTypeDef TIM OC1PolarityConfig TIM5 TIM ICPolarity Rising 普中STM32开发板带您进入ARM世界 如果我们需要配置TIM5的通道1为输入捕获功能 并且为上升沿捕获 不分频 直接映射到TI 可以如下配置 TIM ICInitTypeDefTIM ICInitStructure TIM ICInitStructure TIM Channel TIM Channel 1 通道1TIM ICInitStructure TIM ICFilter 0 x00 滤波TIM ICInitStructure TIM ICPolarity TIM ICPolarity Rising 捕获极性TIM ICInitStructure TIM ICPrescaler TIM ICPSC DIV1 分频系数TIM ICInitStructure TIM ICSelection TIM ICSelection DirectTI 直接映射到TI1TIM ICInit TIM5 普中STM32开发板带您进入ARM世界 4 开启捕获和定时器溢出 更新 中断voidTIM ITConfig TIM TypeDef TIMx uint16 tTIM IT FunctionalStateNewState TIM ITConfig TIM5 TIM IT Update TIM IT CC1 ENABLE 5 设置定时器中断优先级 使能定时器中断通道NVIC初始化库函数是NVIC Init 6 编写定时器中断服务函数TIM5 IRQHandlerITStatusTIM GetITStatus TIM TypeDef TIMx uint16 tTIM IT voidTIM ClearITPendingBit TIM TypeDef TIMx uint16 tTIM IT TIM SetCounter TIM5 0 定时器初值为0 7 使能定时器voidTIM Cmd TIM TypeDef TIMx FunctionalStateNewState 普中STM32开发板带您进入ARM世界 3 硬件电路本实验使用到硬件资源如下 1 D1指示灯 2 K UP按键 3 串口1 4 TIM5的通道1D1指示灯 K UP按键 串口1电路在前面章节都介绍过 至于TIM5的通道1它属于STM32F1芯片内部的资源 D1指示灯用来提示系统正常运行 K UP按键是接在PA0管脚上的 所以可以通过此按键输入一个高电平 通过串口1的printf函数打印捕获到的高电平时间 普中STM32开发板带您进入ARM世界 4 编写输入捕获控制程序本章所要实现的功能是 使用TIM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论