// STM32输入AB相脉冲的编码器程序
// 程序中使用TIM5计数器计数AB相脉冲,如果将TIM5修改成其他定时器也能适用。
// PA0和PA1分别作为A、B相脉冲输入
// 可以另外再使用一个定时器,定时读出脉冲数TIM5->CNT
// 作者: bjtea
// http://blog.csdn.net/bjtea/article/details/8528389
// 以下程序摘自本人做的一个项目,因此可以放心代码的使用
#include "stm32f10x_tim.h"
void T5_Encoder_Configration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_ICInitTypeDef TIM_ICInitStructure;
/* TIM5 clock source enable */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
//PA0-A相, PA1-B相
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; // 使用PA0,PA1
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
/* Timer configuration in Encoder mode */
TIM_DeInit(TIM5); //TIM5复位
TIM_TimeBaseStructure.TIM_Prescaler = 0x0; // No prescaling
TIM_TimeBaseStructure.TIM_Period = 10000;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);
// 设TIM5为编码模式3
TIM_EncoderInterfaceConfig(TIM5, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
TIM_ICStructInit(&TIM_ICInitStructure); // 初始化为默认值
TIM_ICInitStructure.TIM_ICFilter = 6;
TIM_ICInit(TIM5, &TIM_ICInitStructure);
//Reset counter
TIM5->CNT = 0;
TIM_Cmd(TIM5, ENABLE);
}
// TIM5->CNT的内容就是编码器的计数脉冲。
关键字:STM32 AB相脉冲 编码器
引用地址:
STM32输入AB相脉冲的编码器程序
推荐阅读最新更新时间:2024-03-16 16:14
STM32数据手册开发实现按键输入功能
上一篇我们讲解了如何通过数据手册和库函数手册开发STM32的LED驱动(也就是通用GPIO的输出功能),今天我们讲解其输入功能实现。接上篇寄存器介绍(STM32根据数据手册完成LED驱动开发(寄存器版和库函数版介绍),GPIO有关寄存器有7个,本节用到端口配置低寄存器(因为根据电路原理图设计,用到引脚PC5),端口输入数据寄存器。 就开发驱动流程讲,先要看硬件电路接口,定义错了接口,啥功能都实现不了。根据硬件连接情况,我们分析并使用KEY0进行设计。KEY0 的一端接地,一端接单片机PC5引脚,表示我们的按键是按下采集低电平信号,也就是读取的数据是0。好,那么我们按照上节课讲解的八种工作模式,我们肯定是输入模式,但是是哪一种呢
[单片机]
STM32官方固件库简析
STM32固件库目录结构如下图所示: 我们主要关注的是 Libraries这个文件夹。 1、_htmresc 是ST图标,Project是一些列子和模板可以参考学习,Utilities是ST官方评估板的例程。 2、Libraries 中 CMSIS(Cortex Microcontroller Software Interface Standand)为Cortex微控制器软件接口标准。 CoreSupport 中包含内核文件 core_cm3.h, core_cm3.c 用于访问CortexM3内核 设备驱动文件 stm32f10x.h, system_stm32f10
[单片机]
STM32常用的一些开发工具汇总
本文为大家汇总 STM32 常用的一些开发工具。 IDE(集成开发环境) IDE:IntegratedDevelopmentEnvironment,集成开发环境。 IDE通常包含编辑器、编译器、调试器、图形用户界面等集成多种工具的应用程序(也就是大家写代码的上位机软件)。 通用IDE 1.KeilMDK 2.IAREWARM 3.Embedded Studio 专用IDE 1.STM32CubeIDE ST官方推出的集成开发环境,集成了TrueSTUDIO+STM32CubeMX 两个工具。 2.RT-Thread Studio 该IDE支持大部分STM32,集成了RT-Thread实时操作系统。 搭建IDE 自己搭建开发
[单片机]
stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)
步进电机的简单使用 接线: TB6600驱动盒的详细说明: 程序设计: 工程文件: 做毕业设计要用到57步进电机,所以花了两天时间做了一下电机函数 从淘宝查的资料: 接线如图: 接线: DIR- && PUL- 接 单片机GND DIR+ 接 PA1 PUL+ 接 PA0 驱动盒TB6600 VCC 24V 驱动盒TB6600 GND 24V的GND 我测出来的 A组(绿+蓝- ) B组(黄+红-) 如何确定AB两组看这个: 关于42步进电机驱动——基于STM32 HAL库实现 接线方法 TB6600驱动盒的详细说明: 先冲英说明: Microstep Driver 微步驱动程序 Microstep 微步
[单片机]
stm32 驱动DS18B20温度传感器
#include temp.h #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t #define DS18B20_PORT GPIOA #define DS18B20_PIN GPIO_Pin_1 #define DS18B20_CLK RCC_APB2Periph_GPIOA #define RW1820_DQ_HIGH GPIO_SetBits(DS18B20_PORT, DS18B20_PIN); #define RW1820_DQ_LOW GPIO_ResetBits(DS18B20_PORT
[单片机]
关于STM32正交编码器边沿的理解
STM32中的TIM_EncoderInterfaceConfig()函数。其配置的定时器有编码器接口等功能,一般是定时器的通道1和通道2才能作为编码器的输入口,对应编码器输出的两项。 TIMx参数就是使用哪个定时器作为编码器接口的捕捉定时器。 一般一个编码器占用一个定时器。 TIM_EncoderMode参数是模式,是单相计数(只能反映速度)还是两相计数(速度和方向)。 TIM_IC1Polarity和TIM_IC2Polarity参数就是通道1、2的捕捉极性。 但是一般来说,STM32对应的都是两相计数,一项计数容易误判,也就是说,你可以按一路计数,但是接线时好像两相的编码线A,B都是需要接上的,否则容易误判。
[单片机]
STM32延时函数
void delay_init(u8 SYSCLK) { SysTick- CTRL&=0xfffffffb; fac_us=SYSCLK/8; fac_ms=(u16)fac_us*1000; } Systick 主要的作用就是拿来计时,其原理和应用简述一下就是这样的:通过配置寄存器 SysTick- CTRL来设定Systick的计时频率并Enable使Systick开始计数,这里的 SysTick- CTRL&=0xfffffffb应该很好理解,把第2位设定为0,查找应用手册可以知道这是把Systick的计时频率设定为CPU主频(SYSCLK)的1/8。
[单片机]
基于NiosII的低码率实时H.264视频编码器
引 言 H.264标准作为新一代视频编码标准,是面向多比特率的视频编码标准,也称JVT/AVC标准,既可用于高码率的HDTV和数字存储系统,也可用于低码率的实时通信系统。在相同的图像质量情况下,H.264比H.263和MPEG一4可以节省20%~50%的码率。就其基本档次而言,编码器的复杂度是H.263的10倍左右。H.264良好的网络亲和性和优异的压缩性能使其成为视频应用的首选,但其巨大的运算量成为许多应用的瓶颈。笔者基于NiosII设计了一种低码率实时应用的编码系统。该系统充分利用FPGA的并行设计结构,对视频数据采用高压缩比的H.264标准编码,能很好地满足低码率实时编码的要求。 1 H.264编码系统结构设
[手机便携]