完整教程:带你了解STM32:TIM定时器(第四部分)

目录

0.STM32中机制最强大、结构最复杂的一个外设——定时器(四部分学习)

第一部分:

第二部分:

第三部分:

第四部分:

1.编码器接口简介

2.正交编码器

3.编码器接口基本结构

4.工作模式

5.实例(均不反相)

6.实例(TI1反相)

7.编码器接口测速代码

第一步:按图接线到面包板上

第二步:复制定时器定时中断的代码

第三步:编码器代码模块化

第四步:编码器初始化

编码器接口相关库函数

第五步:写编码器的增量值函数并头文件声明

第六步:主函数调用

编码器接口测速完整代码

8.编码器接口相关库函数


0.STM32中机制最强大、结构最复杂的一个外设——定时器(四部分学习)

第一部分:

首要是定时器基本定时的效果,定一个时间,随后让定时器每隔这个时间产生一个中断,来实现每隔一个固定时间执行一段时间的目的,比如:时钟、秒表、一些程序算法时

第二部分:

主要是定时器输出比较的功能,输出比较这个模块最常见的用途是产生PWM波形,用于驱动舵机、直流电机等设备

第三部分:

主导是定时器输入捕获的特性,使用输入捕获这个模块来搭建测量方波频率的例子

第四部分:

主要是定时器的编码器接口,使用该编码器接口,能够更加方便地读取正交编码器的输出波形,在编码电机测速中,应用非常广泛



1.编码器接口简介

Encoder Interface 编码器接口

编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度

每个高级定时器和通用定时器都拥有1个编码器接口

两个输入引脚借用了输入捕获的通道1和通道2

编码器接口模式基本上相当于使用了一个带有方向选择的外部时钟


2.正交编码器


3.编码器接口基本结构

输入捕获前两个通道,通过GPIO口接入编码器的A、B相,然后通过滤波器和边沿检测极性选择,产生TI1FP1和TI2FP2,通向编码器接口,编码器接口通过预分频器控制CNT计数器的时钟,同时编码器接口还根据编码器的旋转方向,控制CNT的计数方向(编码器正转时,CNT自增,编码器反转时,CNT自减),ARR补码的特性,很容易得到负数


4.工作模式

正传向上计数,反转向下计数


5.实例(均不反相)

原来的那个值,并不受毛刺噪声的影响就是抗噪声原理:出现一个引脚不变,另外一个引脚连续跳变多次的毛刺信号,计数器就会加、减、加、减来回摆动,最终计数值,还


6.实例(TI1反相)


7.编码器接口测速代码

第一步:按图接线到面包板上

第二步:复制定时器定时中断的代码

第三步:编码器代码模块化

第四步:编码器初始化

初始化步骤:1.RCC开启时钟,开启GPIO和定时器的时钟;2.安装GPIO,这里需要把PA6和PA7配置为输入模式;3.配置时基单元,预分频器选择不分频,ARR自动重装给65535;4.配置输入捕获单元;5.部署编码器接口模式;6.启动定时器

电路初始化后,CNT就会随着编码器旋转自增自减,如果想要测出编码的位置,直接读出CNT的值,倘若想测量编码器的速度和方向,就每隔一段固定的闸门时间,取出CNT然后把CNT清零

编码器接口相关库函数

定时器编码器接口配置,参数(选择定时器,选择编码器模式,通道1的电平极性选择,通道2的电平极性选择)

第五步:写编码器的增量值函数并头文件声明

第六步:主函数调用

编码器接口测速完整代码


8.编码器接口相关库函数

定时器编码器接口设置,参数(选择定时器,选择编码器模式,通道1的电平极性选择,通道2的电平极性选择)

posted on 2025-09-28 10:15  ljbguanli  阅读(37)  评论(0)    收藏  举报