stm32编码器测试电机速度,两种方法的比较

#ifndef _ENCODER_H_

#define _ENCODER_H_

  

#include "stm32f1xx.h"

  

//电机1的编码器输入引脚

#define MOTO1_ENCODER1_PORT GPIOA

#define MOTO1_ENCODER1_PIN  GPIO_PIN_0

#define MOTO1_ENCODER2_PORT GPIOA

#define MOTO1_ENCODER2_PIN  GPIO_PIN_1

  

//定时器号

#define ENCODER_TIM htim2

#define PWM_TIM     htim3

#define GAP_TIM     htim4

  

#define MOTOR_SPEED_RERATIO 45u    //电机减速比

#define PULSE_PRE_ROUND 11 //一圈多少个脉冲

#define RADIUS_OF_TYRE 34 //轮胎半径,单位毫米

#define LINE_SPEED_C RADIUS_OF_TYRE * 2 * 3.14

  

#define RELOADVALUE __HAL_TIM_GetAutoreload(&ENCODER_TIM)    //获取自动装载值,本例中为20000

#define COUNTERNUM __HAL_TIM_GetCounter(&ENCODER_TIM)        //获取编码器定时器中的计数值

  

typedef struct _Motor

{

    int32_t lastCount;   //上一次计数值

    int32_t totalCount;  //总计数值

    int16_t overflowNum; //溢出次数

    float speed;         //电机转速

    uint8_t direct;      //旋转方向

}Motor;

  

#endif


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值