❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。
☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。
🌙专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。⭐️ 专栏主要内容: 主要学习STM32单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:http://t.csdn.cn/HCD8v
本学习过程参考:https://space.bilibili.com/383400717
STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf
链接里压缩包的解压密码:32
本大节主要学习TIM定时器的相关知识,包含八小节:
第一小节主要学习定时器基本定时的功能,第二小节是对第一小节的内容写两个程序进行练习,分别是定时器定时中断和定时器外部时钟;
第三小节主要学习定时器输出比较的功能,第四小节是对第三小节的内容写三个程序进行练习,分别是PWM驱动LED呼吸灯、PWM驱动舵机以及PWM驱动直流电机;
第五小节主要学习定时器输入捕获的功能,第六小节是对第五小节的内容写两个程序进行练习,分别是输入捕获模式测频率和PWMI模式测频率占空比;
第七小节主要学习定时器的编码器接口功能,第八小节是对第七小节的内容写一个程序进行练习,即编码器接口测速;
最终附上所有的源代码;
本小节主要是学习定时器输入捕获的功能,在这部分,我们将会学习使用输入捕获这个模块来实现测量方波频率的例子;
文章目录
- 1、输入捕获简介
- 2、频率测量
- 3、输入捕获通道
- 4、主从触发模式
- 5、输入捕获基本结构
- 6、PWMI基本结构
1、输入捕获简介
- 如上图所示,输入捕获对应定时器的左边这部分电路;右边那部分是上一节讲的输出比较部分;4个输入捕获和4个输出比较通道,公用4个CCR寄存器;另外它们的CH1到CH4,4个通道的引脚,也是公用的;所以对于同一个定时器,输入捕获和输出比较,不能同时使用
- 顾名思义,输入捕获就是捕获输入端口的高低电平信号,并将其存到指定寄存器(CCR)中;输入捕获可用
2、频率测量
- 测频法适合测量高频信号,侧周法适合测量低频信号
- 对应图上中界频率f_m,当待测信号频率小于中界频率时,侧周法误差更小,选用侧周法更合适;当待测信号大于中界频率时,测频法误差更小,选用测频法更合适;
3、输入捕获通道
- 引脚进来后,先经过滤波器,滤波器的输入时TI1,就是CH1引脚;输出的TI1F就是滤波后的信号;fDTS是滤波器的时钟来源,下面CCMR1寄存器里的ICF位可以控制滤波器的参数;
- 滤波之后的信号TI1F,通过边沿检测器,捕获上升沿或者下降沿,用这个CCER寄存器里的CC1P位,就可以选择极性了;最终得到TI1FP1触发信号,通过数据选择器,进入通道1后续的捕获电路;
- 之后的ICPS位,可以配置分频器,可以选择不分频、2分频、4分频、8分频等;
- 最后CC1E位,控制输出使能或失能;如果使能了输出,输入端产生边沿信号,经过层层电路,就可以让最后CNT的值,运转到CCR里面去;
4、主从触发模式
- 主从触发模式是主模式、从模式和触发源选择这三个功能的简称;
- 主模式可以将定时器内部的信号,映射到TRGO引脚,用于触发别的外设;所以这部分叫做主模式;
- 从模式就是接收其他外设或者自身外设的一些信号,用于控制自身定时器的运行,也就是被别的信号控制;所以这部分叫从模式;
- 触发源选择, 就是选择从模式的触发信号源的,你可以认为它是从模式的一部分;触发源选择,选择指定的一个信号,得到TRGI,TRGI去触发从模式,从模式可以在右边绿色的列表里,选择一项操作来自动执行;如果想让TI1FP1信号自动触发CNT清零,那触发源选择就可以选中这里的TI1FP1,从模式执行的操作,就可以选择执行Reset的操作,这样TI1FP1的信号就可以自动触发从模式,从模式自动清零CNT;实现硬件全自动测量; 这就是主从触发模式的用途;
5、输入捕获基本结构
- 上图是对输入捕获模式整体的概括,也对应着我们演示代码的代码逻辑
- 输入捕获基本结构,右上角是时基单元,我们把时基单元配置好,启动定时器,那这个CNT就会在预分频之后的时钟的驱动下,不断自增;这个CNT,就是我们侧周法用来计数计时的东西;
- 经过预分频之后的下图位置的时钟频率,就是驱动CNT的标准频率fc;
- 这里可以看出,标准频率=72M/预分频系数;
- 下面输入捕获通道1的的GPIO口,输入一个左上角所示的方波信号,经过录波器和边沿检测,选择TI1FP1为上升沿触发,之后输入选择直连的通道,分频器选择不分频;当TI1FP1出现上升沿之后,CNT的当前计数值转运到CCR1里,同时触发源选择,选中TI1FP1为触发信号,从模式选择复位操作,这样TI1FP1的上升沿,也会通过上面这一条路去触发CNT清零;
6、PWMI基本结构
- PWMI模式使用了两个通道同时捕获一个引脚,可以同时测量周期和占空比;