现在可以用编码器读取计数器的值了,但是怎么去测速呢?

2019-08-14 18:49发布

编码器怎么去测速呢?怎么通过PWM去控制直流电机呢?求教各位大神!最近在用直流电机,希望大家可以帮帮忙!谢谢啦!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
28条回答
张晓斌
2019-08-17 00:57
回复【19楼】joe_knight:
---------------------------------
蒙圈了。。。应该是初始化时使能TIM3和TIM5,然后在TIM2中断里面禁用TIM3和TIM5,读取计数值放到M1和M2里面在进行计算。这样也不能实现。然后又仔细看了看那篇文章,换了种思路,  
主函数中   
 if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6)==1)//TIM3的PC6 C7作为编码器接口
      {
        TIM3->CNT=0;
        TIM_Cmd(TIM5,ENABLE);
      }
然后在TIM2中断里
void TIM2_IRQHandler(void)
{
  u16 M1=0,M2=0;
   
    if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6)==1)
    {    
  TIM_Cmd(TIM3,DISABLE);
  TIM_Cmd(TIM5,DISABLE);    
   
  M1=TIM3->CNT;
  M2=TIM5->CNT; 
    
  TIM3->CNT=0;
  TIM5->CNT=0;
  n=60*(1000000)*M1/(M2*4*400); 
  
  TIM_Cmd(TIM3,ENABLE);
  TIM_Cmd(TIM5,ENABLE);
    } 
  TIM_ClearITPendingBit(TIM2,TIM_IT_Update); 
    
}
但是这样也不可以啊!这样应该可以啊!奔溃了。。。

一周热门 更多>