STM32 HAL库学习系列第5篇 定时器TIM---编码器接口模式配置

cube基本配置,外设开启编码器,串口2ide

 

可能你们在设置的时候有这个错误函数

错误:error:  #20: identifier "TIM_ICPOLARITY_BOTHEDGE" is undefinedui

意思是,高级、通用定时器不能用BothEdge,只有基本定时器才能用BothEdge编码

 

针对具体的芯片举几个例子:基本都是大同小异spa

F4系列:.net

1   /* 编码器初始化及使能编码器模式 */
2  ENCODER_TIMx_Init(); 3   HAL_TIM_Encoder_Start(&htimx_Encoder, TIM_CHANNEL_ALL);
1 /* 获取捕获值并计算转速 */
2  
3       CaptureNumber = ( int16_t )__HAL_TIM_GET_COUNTER(&htimx_Encoder)+OverflowCount*65535; 4       printf("输入捕获值:%d \n",CaptureNumber); 5       // 4 : 使用定时器编码器接口捕获AB相的上升沿和降低沿,一个脉冲*4. 6       // 11:编码器线数(转速一圈输出脉冲数) 7       // 34:电机减数比,内部电机转动圈数与电机输出轴转动圈数比,即减速齿轮比
8       printf("电机实际转动速度:%0.2f(圈/s)\n",(float)CaptureNumber/4/11/34); 9       __HAL_TIM_SET_COUNTER(&htimx_Encoder,0);

 

F1系列  输出方向与速度code

 1 /**  2  * 函数功能: 系统滴答定时器中断回调函数  3  * 输入参数: 无  4  * 返 回 值: 无  5  * 说 明: 每发生一次滴答定时器中断进入该回调函数一次  6   */
 7 void HAL_SYSTICK_Callback(void)  8 {  9   static uint32_t count=0; 10   if(start_flag) // 等待脉冲输出后才开始计时
11  { 12     time_count++;         // 每1ms自动增一
13     if(time_count==1000)  // 1s
14  { 15       /* Get the current direction */
16       uwDirection = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htimx_Encoder); 17       CaptureNumber=__HAL_TIM_GET_COUNTER(&htimx_Encoder); 18      
19       printf("当前编码器定时器计数方向:%d\n",uwDirection); 20       printf("输入捕获值:%d\n",CaptureNumber); 21       printf("1s内编码器计数值:%d\n",CaptureNumber>=count?CaptureNumber-count:CaptureNumber+65535-count); 22      
23       // 11:编码器线数(转速一圈输出脉冲数) 24       // 34:电机减数比,内部电机转动圈数与电机输出轴转动圈数比,即减速齿轮比
25       printf("电机实际转动速度:%0.2f(圈/s)\n",(float)(CaptureNumber>=count?CaptureNumber-count:CaptureNumber+65535-count)/11/34/2); 26       count=CaptureNumber; 27       time_count=0; 28  } 29  } 30 }

 

函数应用:blog

这个函数很好用,在电机控制时使用不少接口

__HAL_TIM_SET_COUNTER()    能够设置计数初值为须要的值,默认是0get

 

增量式编码器四倍频:

肯定编码器是多少线的,假设定时器分频为0;  则定时器计数为390*4 = 1560 

 

中断配置:编码器模式是能够不须要中断的,主要是定时器1和8的配置

 

注意:这个是我实际遇到的问题,遇到的能够参考

编码器是不是OC(集电极开路)门,接了上拉没有,没有须要接上啦,若是不使用Z信号,须要把外部中断清零的那部分代码去掉

 

标准库配置能够参考:https://blog.csdn.net/wang328452854/article/details/50579832

相关文章
相关标签/搜索