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

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>基本使用方法
    网上百家乐的玩法技巧和规则| 百家乐免费下| 百家乐官网路有几家| 百家乐外挂| 威尼斯人娱乐场 新世纪| 钱百家乐取胜三步曲| 百家乐官网赌博讨论群| 百家乐官网免费路单| 大发888案件| 巴厘岛百家乐娱乐城| 百家乐巴黎| 百家乐官网投注网出租| 百家乐官网娱乐城怎么样| 888真人娱乐城| 大发888官方游戏平台| 蓝盾百家乐娱乐场开户注册| 真人百家乐现金游戏| 迪士尼百家乐官网的玩法技巧和规则| 什么是百家乐官网赌博| 寻乌县| 7m足球比分| 大发888娱乐手机版| 澳门百家乐网络游戏信誉怎么样| 百家乐高手的心得| 海立方百家乐赢钱| KK百家乐官网娱乐城 | 邵阳县| 澳门银河娱乐| 棋牌捕鱼| 大发888娱乐场电话| 网上百家乐内| 伯爵百家乐娱乐平台| 澳门百家乐是怎样赌| 必博百家乐游戏| 百家乐官网现金网最好的系统哪里有可靠吗 | 明升投注网 | 棋牌游戏论坛| 大发888下载专区| 威尼斯人娱乐城首选d77com| 百家乐官网网址| 博天堂百家乐官网的玩法技巧和规则|