stm32---输入捕获实验实操(巨详细)

这篇具有很好参考价值的文章主要介绍了stm32---输入捕获实验实操(巨详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这次来分享上次没说完的输入捕获的知识点

实验中用到两个引脚,一个是通用定时器 TIM3 的通道 1,即 PA6,用于输出 PWM 信号,另一
个是高级控制定时器 TIM1 的通道 1,即 PA8,用于 PWM 输入捕获,实验中直接用一根杜邦线
短接即可 PA6 和 PA8 即可,同时可用示波器监控 PA6 的波形,看看实验捕获的数据是否正确。

PA6:用定时器的输出比较功能输出波形。

PA8:用定时器的输入捕获功能捕获波形。

步骤

1.通用定时器产生 PWM 配置

2.高级定时器 PWM 输入配置

3.编写中断服务程序,计算测量的频率和占空比,并仿真调试看是否一致。

编程的要点主要分成两部分,一个是通用定时器的 PWM 信号输出,另一个是 PWM 信号输入捕
获。

下面就贴出代码,全文跟着我操作,可以和我实现一样的效果

1.定时器产生 PWM 配置(输出比较)

1.1 配置GPIO

由于我们用到的是PA6,那么就配置PA6复用推挽输出就行,因为他用的不是普通GPIO口的功能,而是TIM3_CH1所以要用到复用功能,同时开启复用的时钟。

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

1.2 初始化定时器

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

1.3 初始化输出比较

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

最后在最上面加上,使能一下TIM3的时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

这样就可以产生50%占空比的波形了,周期频率那些由Psc, arr来决定

那么现在我们用示波器量一下看看到底是不是50%的占空比

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

实际测量,的确是的。那么下面就开始写输入捕获的代码

2.定时器 PWM 输入配置

1.1 配置GPIO

由于我们用到的是PA8,那么就配置PA8,但是这次要配置成浮空输入模式

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

1.2配置中断(因为我们要用到捕获和溢出处理中断)

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

中断通道别选错

1.3 初始化定时器

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

我们可以算出计数器的计数周期为 T=72M/72=1uS,1us*1000=1MS,这个是定时
器在不溢出的情况下的最大计数周期,也就是说周期小于 1ms 的 PWM 信号都可以被捕获到,转
换成频率就是能捕获到的最小的频率为 1KHZ。

1.4 初始化输入捕获功能

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

因为是 PWM 输入模式,只能使用通道 1 和通道 2 ,假如我们使用的是通道 1,即 TI1,输入
的 PWM 信号会被分成两路,分别是 TI1FP1 和 TI1FP2,两路都可以是触发信号。如果选择
TI1FP1 为触发信号,那么 IC1 捕获到的是 PWM 信号的周期,IC2 捕获到的是占空比,这种
输入通道 TI 和捕获通道 IC 的映射关系叫直连,输入捕获结构体的 TIM_ICSelection 要配置为
TIM_ICSelection_DirectTI。如果选择 TI1FP2 为触发信号,则 IC2 捕获到的是周期,IC1 捕获到的是占空比,这种输入通道 TI 和捕获通道 IC 的映射关系叫非直连,输入捕获结构体的 TIM_ICSelection要配置为 TIM_ICSelection_IndirectTI。有关输入通道 TI 和捕获通道 IC 的具体映射关系见图输入通道 TI 和捕获通道 IC 的映射图 ,有直连和非直连两种。

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

好,我们来分析上上面的一大堆术语。

Q:如果选择TI1FP1 为触发信号,那么 IC1 捕获到的是 PWM 信号的周期,IC2 捕获到的是占空比。这句话怎么理解呢?

A点:由于上面的输入捕获的配置。当捕获到 PWM 信号的第一个上升沿时,产生中断,计数器被复位,锁存到捕获寄存器 IC1 和 IC2的值都为 0。

B点:当下降沿到来时,IC2 会捕获,对应的是占空比,但是会产生中断。

C点:当捕获到第二个上升沿时,IC1 会捕获,对应的是周期,而且会再次进入中断,这个时间就可以根据 IC1 和 IC2的值计算出频率和占空比。

中断复位函数中,我们获取输入捕获寄存器 CCR1 和 CCR2 寄存器中的值,当 CCR1 的值不为 0
时,说明有效捕获到了一个周期,然后计算出频率和占空比。在计算的时候 CCR1 和 CCR2 的值
都必须要加 1,因为计数器是从 0 开始计数的。

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

现在我们全速跑代码看看是否一致,还是很准的

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

stm32---输入捕获实验实操(巨详细),STM32,stm32,嵌入式硬件,单片机

全文就是这样,非常的简单易懂文章来源地址https://www.toymoban.com/news/detail-813027.html

以上仅是个人学习笔记,若对你有帮助,那么最好不过,共勉!

到了这里,关于stm32---输入捕获实验实操(巨详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

    核心:本文共4个小实验: 第一个:LED灯闪烁 第二个:LED流水灯 第三个:按键控制LED 第四个:光敏传感器控制蜂鸣器 1.1 LED、蜂鸣器、面包板 LED:发光二极管,正向通电点亮,反向通电不亮。 有源蜂鸣器(本实验):内部自带振荡源,将正负极接上直流电压即可持续发声,频

    2024年01月21日
    浏览(64)
  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

    上一篇:[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 学C语言时,使用的printf()函数,就是通过串口打印出来的。 跟外部器件通信,比如GPS模块、蓝牙模块、wifi模块; 两个开发板之间通信,制定私有协议。 PC电脑通信,使用上位机显示数据或控制下位机。 操作:打

    2024年01月22日
    浏览(71)
  • 嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验

    一、STM32CubeMx实现数码管 1、双击打开STM32CubeMX。 2、点击File选项,在File列表下选择New Project选项新建工程。 3、在图中所示位置的方框中输入我们使用的芯片型号来搜索芯片 4、与我们的搜索相关的芯片型号会在这里呈现,我们只需要选择我们需要的即可,这里我们双击第一个

    2024年02月08日
    浏览(54)
  • (十九)STM32——输入捕获

    目录 学习目标 成果展示 内容 获取 配置 代码 总结          本节内容我们要介绍的是输入捕获,其实也和定时器那部分知识是有关系的,所谓输入捕获,通俗一点来讲,其实就是通过检测上升沿和下降沿来计算你的输入持续时间。具体怎么去检测和捕获呢?我们来慢慢

    2024年02月02日
    浏览(29)
  • STM32——输入捕获

    下图指定电平跳变是指上升沿和下降沿,可以通过程序配置,发生电平跳变时,输入捕获电路会让当前CNT计数器的值锁存到CCR,锁存CCR的意思就是把当前CNT的值读出来,写入CCR中。 (1).4个输入捕获和输出比较通道,共用4个CCR寄存器,CH1-CH4,4个通道和引脚也是共用的,所以对

    2024年02月04日
    浏览(45)
  • STM32——TIM输入捕获

    IC(Input Capture)输入捕获 输入捕获模式下, 当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中 ,可用于测量PWM波形的频率、占空比、脉冲间隔(频率)、电平持续时间(占空比)等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为 PWMI模式

    2023年04月08日
    浏览(43)
  • STM32定时器-输入捕获

    输入捕获工作过程 一句话总结工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器(TIMxCCRx)里面,完成一次捕获。 步骤1:设置输入捕获滤波器(通道1为例) 输入捕获1滤

    2024年02月15日
    浏览(40)
  • stm32---定时器输入捕获

            在定时器中断实验章节中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种。 STM32F1除了基本定时器TIM6和TIM7,其他定时器都具有输入捕获功能 。输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,通常用于测量输入信号的脉宽、测量

    2024年01月19日
    浏览(48)
  • STM32定时器(输入捕获)

     上一章讲了输出比较的内容,输出比较就是定时器自增,同时和CCR比较,按照自己设置的比较要求,输出REF高低电平,这一章我们讲下面结构图输出比较左边部分,也就是 输入捕获 首先,介绍一下输入捕获 IC(input capture)输入捕获,输入捕获模式下,当通道输入引脚出现

    2024年02月09日
    浏览(38)
  • STM32 输入捕获模式测频率

    单片机学习! 目录 文章目录 前言 一、输入捕获测频率配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 GPIO初始化 2.3 配置时基单元 2.4 配置输入捕获单元 2.5 选择从模式的触发源 2.6 配置从模式为Reset 2.7 开启定时器 总结         博文介绍如何配置输入捕获电路来测

    2024年03月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包