电机m法测速 测量 输入捕获的脉冲数就是速度值 为什么呢

2019-08-16 18:51发布

void Encoder_Init_TIM4(void)
{
    RCC->APB1ENR|=1<<2;     //TIM4&#202;±&#214;&#211;&#202;&#185;&#196;&#220;
    RCC->APB2ENR|=1<<3;    //&#202;&#185;&#196;&#220ORTb&#202;±&#214;&#211;
    GPIOB->CRL&=0X00FFFFFF;//PB6 PB7
    GPIOB->CRL|=0X44000000;//&#184;&#161;&#191;&#213;&#202;&#228;&#200;&#235;
    /* °&#209;&#182;¨&#202;±&#198;÷&#179;&#245;&#202;&#188;&#187;&#175;&#206;&#170;±à&#194;&#235;&#198;÷&#196;&#163;&#202;&#189; */
    TIM4->SC = 0x0;//&#212;¤·&#214;&#198;&#181;&#198;÷
    TIM4->ARR = ENCODER_TIM_PERIOD-1;//&#201;è&#182;¨&#188;&#198;&#202;&#253;&#198;÷×&#212;&#182;&#175;&#214;&#216;×°&#214;&#181;
  TIM4->CCMR1 |= 1<<0;          //&#202;&#228;&#200;&#235;&#196;&#163;&#202;&#189;&#163;&#172;IC1FP1&#211;&#179;&#201;&#228;&#181;&#189;TI1&#201;&#207;
  TIM4->CCMR1 |= 1<<8;          //&#202;&#228;&#200;&#235;&#196;&#163;&#202;&#189;&#163;&#172;IC2FP2&#211;&#179;&#201;&#228;&#181;&#189;TI2&#201;&#207;
  TIM4->CCER |= 0<<1;           //IC1&#178;&#187;·&#180;&#207;ò
  TIM4->CCER |= 0<<5;           //IC2&#178;&#187;·&#180;&#207;ò
    TIM4->SMCR |= 3<<0;              //SMS='011' &#203;ù&#211;&#208;&#181;&#196;&#202;&#228;&#200;&#235;&#190;ù&#212;&#218;&#201;&#207;&#201;&#253;&#209;&#216;&#186;&#205;&#207;&#194;&#189;&#181;&#209;&#216;&#211;&#208;&#208;§
    TIM4->CR1 |= 0x01;    //CEN=1&#163;&#172;&#202;&#185;&#196;&#220;&#182;¨&#202;±&#198;÷
}
/**************************************************************************
&#186;&#175;&#202;&#253;&#185;&#166;&#196;&#220;&#163;&#186;&#181;&#165;&#206;&#187;&#202;±&#188;&#228;&#182;&#193;&#200;&#161;±à&#194;&#235;&#198;÷&#188;&#198;&#202;&#253;
&#200;&#235;&#191;&#218;&#178;&#206;&#202;&#253;&#163;&#186;&#182;¨&#202;±&#198;÷
·&#181;&#187;&#216;  &#214;&#181;&#163;&#186;&#203;&#217;&#182;&#200;&#214;&#181;
**************************************************************************/
int Read_Encoder(u8 TIMX)
{
    int Encoder_TIM;   
     Encoder_TIM= (short)TIM4 -> CNT;  TIM4 -> CNT=0;  
   
    return Encoder_TIM;
}

1 看到一些测速程序 TIM2->CNT就是速度值  
2  TIM2->CNT这个不是脉冲数吧   
3 是要关闭TIM4再读TIM2->CNT吧还是定时时间到了直接读  然后寄存器设为0
4 有没有什么好的方法捕获输出的脉冲数参考一下
感谢解答 拜托了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。