吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解stm32定時器的編碼器模式

CHANBAEK ? 來源:電子愛好者 ? 作者:LinuxARM ? 2023-01-19 09:14 ? 次閱讀

前言:

增量式編碼器在實際應用中還是很常見。stm32定時器帶的也有編碼器模式。所用的編碼器是有ABZ三相,其中ab相是用來計數,z相輸出零點信號。AB相根據旋轉的方向不同,輸出的波形如下圖所示:

Dingtalk_20221206154648.jpg

第一步:具體配置如下圖:

Dingtalk_20221206154648.jpg

重點說明:

一、如果編碼模式設置為 Encoder Mode TI1 and TI2 則會默認檢測AB相的上升沿與下降沿;

每一個上升沿和下降沿都觸發計數,所以每轉一格計數器就會+4;那么上圖計數周期設置為400;也就是編碼器轉100格,計數器就會置零,重新開始計數!

二、關于Polarity參數:這個參數的意思是在檢測到上升沿的時候就觸發encoder捕獲AB相的值,而并不是這里設置的是上升沿就只檢測AB相的上升沿,下降沿還是同樣會計數的。

第二步:

可以根據自身需要在NVIC 中斷控制器中配置中斷響應優先級。這里的配置方法可以參考前面幾章!

第三步:代碼分析:

static void MX_TIM4_Init(void)
{


  /* USER CODE BEGIN TIM4_Init 0 */


  /* USER CODE END TIM4_Init 0 */


  TIM_Encoder_InitTypeDef sConfig = {0};
  TIM_MasterConfigTypeDef sMasterConfig = {0};


  /* USER CODE BEGIN TIM4_Init 1 */


  /* USER CODE END TIM4_Init 1 */
  htim4.Instance = TIM4;
  htim4.Init.Prescaler = 0;
  htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim4.Init.Period = 400;
  htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
  sConfig.IC1Polarity = TIM_ICPOLARITY_FALLING;
  sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
  sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
  sConfig.IC1Filter = 15;
  sConfig.IC2Polarity = TIM_ICPOLARITY_FALLING;
  sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
  sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
  sConfig.IC2Filter = 15;
  if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN TIM4_Init 2 */
  HAL_TIM_Encoder_Start(&htim4, TIM_CHANNEL_ALL); //啟動編碼器接口
  /* USER CODE END TIM4_Init 2 */
}
//主函數里面調用計數值
 while (1)
  {
    // Enc_Count:獲取計數個數
    Enc_Count =  __HAL_TIM_GET_COUNTER(&htim4);
    
    //若需要檢測編碼器轉了多少格,記得要/4,因為轉一格是+4;
    //Enc_Count =  __HAL_TIM_GET_COUNTER(&htim4)/4;
     
    

    /* USER CODE END WHILE */


    /* USER CODE BEGIN 3 */

  }
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16445

    瀏覽量

    179447
  • 編碼器
    +關注

    關注

    45

    文章

    3667

    瀏覽量

    135240
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357562
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115369
收藏 人收藏

    評論

    相關推薦

    電機控制基礎3——定時器編碼器模式使用與轉速計算

    上篇介紹了 定時器捕獲輸入脈沖的原理 ,那種方式是根據捕獲的原理,手動切換上升沿與下降沿捕獲,計算脈沖寬度的過程原理比較清晰,但編程操作起來比較麻煩。 對于電機測速用到的正交編碼器,測速時需要捕獲2
    的頭像 發表于 08-30 17:26 ?1.5w次閱讀
    電機控制基礎3——<b class='flag-5'>定時器</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>使用與轉速計算

    stm32定時器編碼器模式

    0、編碼器模式stm32定時器帶的也有編碼器模式。所用的
    發表于 08-09 06:55

    STM32利用定時器編碼器模式處理帶編碼器直流電機

    STM32 Cubemax(五) —— STM32利用定時器編碼器模式處理帶編碼器直流電機文章目
    發表于 09-03 07:38

    stm32 定時器編碼器模式有哪幾種呢

    stm32 定時器編碼器模式有哪幾種呢?STM32固件庫中編碼器接口的配置函數是怎樣的?
    發表于 11-15 06:11

    請問怎么實現STM32f103定時器配置為編碼器模式使用?

    請問怎么實現STM32f103定時器配置為編碼器模式使用?
    發表于 11-18 07:30

    STM32單片機定時器1設置成為AB項編碼器模式的方法

    STM32單片機定時器1設置成為AB項編碼器模式大家好·,我是DXZ,這篇博客是使用STM32單片機定時
    發表于 11-26 08:09

    STM32F407定時器編碼器接口模式的相關資料推薦

    STM32F407定時器編碼器接口模式16位定時器擴展32位
    發表于 01-12 06:17

    怎樣去使用STM32定時器編碼器模式

    STM32F103-定時器編碼器模式和高級定時器輸出互補的PWM信號剛使用STM32時使用輸入捕
    發表于 01-14 08:02

    為什么STM32單片機的定時器PWM輸入捕獲模式無法讀取編碼器

    為什么STM32單片機的定時器PWM輸入捕獲模式無法讀取編碼器呢?怎樣去解決STM32單片機的定時器
    發表于 01-21 06:30

    電機控制知識——定時器編碼器模式的使用

    ,計數向上計數,反轉時,通道A的信號滯后,向下計數。設置信號的極性反相,可以使向下計數代表電機正轉。 2 定時器編碼器模式配置以STM32
    發表于 03-05 07:00

    STM32單片機定時器1設置成為AB項編碼器模式

    STM32單片機定時器1設置成為AB項編碼器模式大家好·,我是DXZ,這篇博客是使用STM32單片機定時
    發表于 11-18 15:21 ?21次下載
    <b class='flag-5'>STM32</b>單片機<b class='flag-5'>定時器</b>1設置成為AB項<b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>

    STM32——編碼器測速原理及STM32編碼器模式

    本問講解了編碼器測速原理及STM32編碼器模式,文末有STM32編碼器
    發表于 11-26 11:36 ?272次下載
    <b class='flag-5'>STM32</b>——<b class='flag-5'>編碼器</b>測速原理及<b class='flag-5'>STM32</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>

    STM32F103-定時器編碼器模式和高級定時器輸出互補的PWM信號

    STM32F103-定時器編碼器模式和高級定時器輸出互補的PWM信號剛使用STM32時使用輸入捕
    發表于 01-14 12:53 ?11次下載
    <b class='flag-5'>STM32</b>F103-<b class='flag-5'>定時器</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>和高級<b class='flag-5'>定時器</b>輸出互補的PWM信號

    STM32F407定時器編碼器模式簡介

    STM32F407定時器編碼器模式
    發表于 03-31 17:14 ?8781次閱讀
    <b class='flag-5'>STM32</b>F407<b class='flag-5'>定時器</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>簡介

    STM32CubeMx定時器編碼器模式基本使用方法

    增量式編碼器在實際應用中還是很常見。stm32定時器帶的也有編碼器模式。所用的編碼器是有ABZ
    發表于 06-01 14:36 ?5898次閱讀
    <b class='flag-5'>STM32</b>CubeMx<b class='flag-5'>定時器</b><b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>基本使用方法
    威尼斯人| 新晃| 济州岛百家乐官网的玩法技巧和规则 | 百家乐官网稳赢秘诀教学| 伯爵百家乐娱乐平台| 巴厘岛百家乐娱乐城| 百家乐官网投注网中国体育 | 百家乐官网ag厅投注限额| 在线百家乐技巧| 有关百家乐官网玩家论坛| 威尼斯人娱乐备用6222| 三公百家乐官网玩法| 新全讯网22335555| 百家乐官网揽法大全| 新利百家乐的玩法技巧和规则| 威尼斯人娱乐城购物| 实战百家乐十大取胜原因百分百战胜百家乐不买币不吹牛只你能做到按我说的.百家乐基本规则 | 大发888下载亚洲城| 九州百家乐官网的玩法技巧和规则| 全讯网信息| 百家乐辅助器| 百家乐体育直播| 百家乐官网机器出千| 狮威国际娱乐| 大发888网上支付| 大地百家乐的玩法技巧和规则 | 全讯网123| 太阳城百家乐网址--| 百家乐官网赌博策略大全| 百家乐足球投注网哪个平台网址测速最好| 百家乐官网推荐怎么看| 太阳城娱乐场| 赌场百家乐作弊| 网上百家乐打牌| 百家乐街机游戏下载| 百家乐官网技巧何为百家乐官网之路| 亿酷棋牌世界下载手机版| 百家乐越长的路| 澳门百家乐官网秘积| 新利国际娱乐| bet365赞助球队|