STM32伺服编码器接口
2017-06-14 16:00
766 查看
在STM32的高级定时器和一般定时器中有Encoder interface mode(编码器接口),TI1和TI2分别对应TIM_CH1 和TIM_CH2 通道。
一、计数规则如下:
表55的是编码器不同的信号下计数方向。
1.仅在TI1边沿计数:上升沿触发时,若对应TI2为低电平,则计数器向下计数;对应为高电平,则向上计数。如图2.在○1和○2处,TI1的上升沿对应TI2为低电平,所以计数器向上计数;同样的,在○3处则相反。
2.在TI1和TI2边沿计数:若TI1、TI2上升沿捕捉时,TI1上升边沿对应TI2位于低电平,则向上计数;TI2上升边沿对应TI1高电平,向上计数,所以为双倍。
二、功能配置
1.设置I/O口(启动时钟,工作在定时器模式下,无上拉)
2.配置定时器(选择编码器接口模式)
实验中采用的是E6A2-cwz5c编码器,分辨率为500/r, 定时器为TI1和TI2双边沿计数,最终计数始终保持为2000,理论值应为1000。如果有实验通过的,还请告知原因,灰常感谢!
一、计数规则如下:
表55的是编码器不同的信号下计数方向。
1.仅在TI1边沿计数:上升沿触发时,若对应TI2为低电平,则计数器向下计数;对应为高电平,则向上计数。如图2.在○1和○2处,TI1的上升沿对应TI2为低电平,所以计数器向上计数;同样的,在○3处则相反。
2.在TI1和TI2边沿计数:若TI1、TI2上升沿捕捉时,TI1上升边沿对应TI2位于低电平,则向上计数;TI2上升边沿对应TI1高电平,向上计数,所以为双倍。
二、功能配置
1.设置I/O口(启动时钟,工作在定时器模式下,无上拉)
2.配置定时器(选择编码器接口模式)
void Encoder_Config() { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM_ICInitStructure; GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOE,&GPIO_InitStructure); GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_TIM1); GPIO_PinAFConfig(GPIOE,GPIO_PinSource11,GPIO_AF_TIM1); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); TIM_DeInit(TIM1); TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //单倍模式 TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 500*4; //计数周期 TIM_TimeBaseStructure.TIM_Prescaler = 0; //时钟分频 TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); TIM_ICStructInit(&TIM_ICInitStructure); TIM_ICInitStructure.TIM_ICFilter = 0; //滤波,0表示不滤波 TIM_ICInit(TIM1,&TIM_ICInitStructure); TIM_EncoderInterfaceConfig(TIM1,TIM_EncoderMode_TI12,TIM_ICPolarity_Rising,TIM_ICPolarity_Rising); //设置定时器工作在编码器接口模式。 TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE); TIM_ClearITPendingBit(TIM1,TIM_IT_Update); TIM_ClearFlag(TIM1,TIM_FLAG_Update); TIM_SetCounter(TIM1,0); //设置计数初值 TIM_Cmd(TIM1,ENABLE); }
实验中采用的是E6A2-cwz5c编码器,分辨率为500/r, 定时器为TI1和TI2双边沿计数,最终计数始终保持为2000,理论值应为1000。如果有实验通过的,还请告知原因,灰常感谢!
相关文章推荐
- STM32编码器接口,以及应用编程
- 编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式
- STM32 HAL库定时器TIM---编码器接口模式配置
- OC&OD,用于MAX7456和STM32接口电平转换
- 三菱伺服MR-J2S-20A 伺服驱动与编码器接线
- 12-低延迟、全接口(HMDI、DVI、YPb Pr、RGB)H.264全高清编码器解码器
- STM32调试接口SWD连接
- 2、STM32基本接口驱动--IO 单总线 串口 SPI IIC
- I2C 总线协议初探 - STM32 I2C 接口外设学习笔记
- 解决STM32 I2C接口死锁在BUSY状态的方法讨论
- 伺服电机与编码器
- STM32外设驱动篇——AT24C02(I2C接口)
- 【安富莱专题教程第1期】基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24
- STM32 SPI接口读写SPI flash实验
- 编码器学习第二记—STM32正点原子第14章学习
- STM32与DS1302的接口电路
- 利用keras搭建自编码器网络——脑机接口
- STM32学习笔记之fatfs文件系统接口函数使用
- 步进电机加编码器就是伺服电机吗
- STM32小问题-复用调试接口JTAG/SWD为普通GPIO