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

相關文章
相關標籤/搜索