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日
    浏览(48)
  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

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

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

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

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

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

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

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

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

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

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

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

    2024年01月19日
    浏览(33)
  • TIM输入不捕获-STM32

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

    2024年02月02日
    浏览(27)
  • STM32定时器(输入捕获)

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

    2024年02月09日
    浏览(26)
  • STM32定时器-输入捕获

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

    2024年02月15日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包