衡阳派盒市场营销有限公司

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>基本使用方法
    百家乐官网有免费玩| 界首市| 最好的百家乐官网好评平台都有哪些| 捷豹百家乐的玩法技巧和规则| 一直对百家乐官网很感兴趣.zibo太阳城娱乐城| 大发888娱乐城手机| 七胜百家乐官网娱乐平台| 菲彩线上娱乐| 全讯网网址| 查风水24山| 五湖四海娱乐城| 威尼斯人娱乐棋牌下载| 百家乐稳赢投注方法| 星子县| 赢钱的棋牌游戏| 龙博百家乐的玩法技巧和规则| 做生意养猫风水| 网上百家乐官网网站导航| 大发888亚洲游戏咋玩| 百家乐娱乐城注册| 百家乐官网龙虎台布价格| 网上百家乐官网的技巧| 博王娱乐| 大发888娱乐场开户注册| 威尼斯人娱乐城官方| 百家乐实战技术| 皇冠开户投注网| 百家乐游戏免费下| 百家乐筹码订做| 任你博百家乐官网娱乐城| 百家乐官网赌场怎么玩| 百家乐官网网上最好网站| 大发888怎么修改密码| 澳门百家乐经| 巴特百家乐的玩法技巧和规则| 百家乐娱乐网网77scs| 百家乐娱乐平台网| 百苑百家乐的玩法技巧和规则 | 百家乐官网博娱乐网赌百家乐官网| 庆云县| 盛世国际娱乐城|