国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32定時器的編碼器接口模式

這篇具有很好參考價值的文章主要介紹了STM32定時器的編碼器接口模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

MCU為STM32L431,通用定時器框圖:
STM32定時器的編碼器接口模式
編碼器接口模式一共有三種,通過TIMx_SMCR寄存器的SMS[3:0]位來選擇。模式1計數(shù)器僅在TI1FP1的邊沿根據(jù)TI2FP2的電平來判斷向上/下計數(shù);模式2計數(shù)器僅在TI2FP2的邊沿根據(jù)TI1FP1的電平來判斷向上/下計數(shù);模式3計數(shù)器同時在TI1FP1和TI2FP2的邊沿根據(jù)另外一條線的電平來判斷向上/下計數(shù)。

計數(shù)方向與編碼器信號的關(guān)系:
STM32定時器的編碼器接口模式

使用編碼器模式3,假如使用如下配置時,
STM32定時器的編碼器接口模式

IC1FP1和IC2FP2不反相,IC1FP1=TI1,IC2FP2=TI2;TI1FP1相對信號是TI2,TI2FP2相對信號是TI1,對應(yīng)關(guān)系如下:

向前 點位 TI1FP1信號 TI2FP2信號 相對信號及電平 計數(shù)器方向
1 上升 TI2(低) 向上
2 上升 TI1(高) 向上
3 下降 TI2(高) 向上
4 下降 TI1(低) 向上
5 上升 TI2(低) 向上
6 上升 TI1(高) 向上
向后 點位 TI1FP1信號 TI2FP2信號 相對信號及電平 計數(shù)器方向
1 上升 TI2(高) 向下
2 下降 TI1(高) 向下
3 下降 TI2(低) 向下
4 上升 TI1(低) 向下
5 上升 TI2(高) 向下
6 下降 TI1(高) 向下

STM32定時器的編碼器接口模式

同樣使用編碼器模式3,當IC1FP1極性反相時計數(shù)器的操作實例(CC1P=’1’,其他配置與上例相同),TI1極性相反,IC2FP2=TI2;TI1FP1相對信號是TI2,TI2FP2相對信號是TI1,對應(yīng)關(guān)系如下:

向前 點位 TI1原信號 TI1FP1信號 TI2FP2信號 相對信號及電平 計數(shù)器方向
1 上升 下降 TI2(低) 向下
2 上升 TI1(低) 向下
3 下降 上升 TI2(高) 向下
4 下降 TI1(高) 向下
5 上升 下降 TI2(低) 向下
6 上升 TI1(低) 向下
向前 點位 TI1原信號 TI1FP1信號 TI2FP2信號 相對信號及電平 計數(shù)器方向
1 上升 下降 TI2(高) 向上
2 下降 TI1(低) 向上
3 下降 上升 TI2(低) 向上
4 上升 TI1(高) 向上
5 上升 下降 TI2(高) 向上
6 下降 TI1(低) 向上

STM32定時器的編碼器接口模式

如果使用編碼器模式1,IC1FP1和IC2FP2不反相,IC1FP1=TI1,IC2FP2=TI2;TI1FP1相對信號是TI2,TI2FP2相對信號是TI1,計數(shù)器在TI1FP1的邊沿根據(jù)IC2FP2的電平來計數(shù)。

向前 點位 TI1FP1信號 相對信號及電平 計數(shù)器方向
1 上升 TI2(低) 向上
2 下降 TI2(高) 向上
3 上升 TI2(低) 向上
4 下降 TI2(高) 向上
向后 點位 TI1FP1信號 相對信號及電平 計數(shù)器方向
1 上升 TI2(高) 向下
2 下降 TI2(低) 向下
3 上升 TI2(高) 向下
4 下降 TI2(低) 向下

STM32定時器的編碼器接口模式
定時器編碼器模式配置:

void Encoder_TIM2_Init(void)
{
  TIM_Encoder_InitTypeDef sConfig = {0};
  TIM_MasterConfigTypeDef sMasterConfig = {0};
  
  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 0;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = (ENCODER_RELOAD_NUM - 1);
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  sConfig.EncoderMode = TIM_ENCODERMODE_TI1;
  sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
  sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
  sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
  sConfig.IC1Filter = 0;
  sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
  sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
  sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
  sConfig.IC2Filter = 0;
  if (HAL_TIM_Encoder_Init(&htim2, &sConfig) != HAL_OK)
  {
    PRINT_ERR("Encoder Tim Init Err\r\n");
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  {
    PRINT_ERR("Encoder Init Mode Err\r\n");
  }

  HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_ALL);
}

其中htim2.Init.Period的值為重裝載值,計數(shù)器的計數(shù)值在0(包含)至Period(包含)之間向上或向下計數(shù),可以通過計數(shù)值的變化根據(jù)編碼器接口的模式來判斷編碼器的方向,也可以TIMx_CR1寄存器的DIR位來判斷方向。如果不需要判斷編碼器轉(zhuǎn)過的圈數(shù),那么重裝載值可以順便設(shè)置,比如65535;如果需要判斷轉(zhuǎn)過的圈數(shù),假定使用模式3,編碼器旋轉(zhuǎn)一周產(chǎn)生的脈沖數(shù)是X,那么重裝載值可以設(shè)置為(X-1)*4,因為模式3在TI1和TI2的邊沿都計數(shù),此時可以通過定時器的溢出中斷來判斷是不是旋轉(zhuǎn)一周。

如果只需要判斷旋轉(zhuǎn)方向,并且編碼器旋轉(zhuǎn)一周的產(chǎn)生的脈沖數(shù)很小的話,那就使用模式1或者模式2比較好,如果使用模式3的話僅通過TIMx_CNT寄存器的值來計算轉(zhuǎn)過角度的話誤差比較大。

另外配置的時候編碼器模式IC1Polarity和IC2Polarity的極性只能選擇上升沿或者下降沿,不能設(shè)置為所有邊沿,這樣的話會導(dǎo)致計數(shù)器計數(shù)失敗,并且方向判斷也會有問題。
STM32定時器的編碼器接口模式文章來源地址http://www.zghlxwxcb.cn/news/detail-414216.html

到了這里,關(guān)于STM32定時器的編碼器接口模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 初出茅廬的小李博客之STM32CubeMx配置定時器的編碼器模式

    初出茅廬的小李博客之STM32CubeMx配置定時器的編碼器模式

    上次文章寫了編碼器是如何工作的,今天就來用STM32F103C8T6的TIM3的通道1跟通道2編寫一個編碼器識別程序。 話不多說,上教程! 選擇外部高速時鐘源HSE 選擇中斷模式觸發(fā)下降沿有效 默認是上拉輸入 添加用戶標簽為SWITCH 使能NVIC配置 選擇編碼器模式 分頻值設(shè)置為2-1 計數(shù)值設(shè)

    2024年02月12日
    瀏覽(26)
  • STM32一個定時器同時配置編碼器和PWM輸出時PWM無法正常輸出的原因【避坑】

    STM32一個定時器同時配置編碼器和PWM輸出時PWM無法正常輸出的原因【避坑】

    ? ? ? ? ?最近我在做寫代碼的時候,因為定時器的資源緊張,就在一個定時器上同時配置了編碼器和PWM,發(fā)現(xiàn)PWM無法正常輸出,查了很久發(fā)現(xiàn)網(wǎng)上資料不多,在仔細翻閱手冊研究后才發(fā)現(xiàn)是 時鐘信號 的問題。 具體原因 定時器在設(shè)置編碼器模式后,計數(shù)的時鐘源就會變成編

    2024年02月04日
    瀏覽(23)
  • STM32(HAL)--使用定時器TIM的Encoder Mode來讀取旋鈕編碼器的脈沖數(shù)

    STM32(HAL)--使用定時器TIM的Encoder Mode來讀取旋鈕編碼器的脈沖數(shù)

    目錄 一 旋鈕編碼器相關(guān)知識 二 STM32CubeMx配置 三 程序編寫 3.1 相關(guān)函數(shù)介紹 3.2 程序編寫 四 實驗結(jié)果 旋轉(zhuǎn)編碼器是一種位置傳感器,輸出脈沖信號可以用來確定編碼器的旋轉(zhuǎn)角度和旋轉(zhuǎn)方向。 編碼器中有兩個開關(guān),當旋鈕旋轉(zhuǎn)后,開關(guān)會依次導(dǎo)通,開關(guān)結(jié)構(gòu)圖如下圖所示

    2024年02月15日
    瀏覽(21)
  • (四) timer+pit(定時器中斷)+encoder(編碼器)-逐飛TC264庫學(xué)習(對比STM32 HAL庫)

    (四) timer+pit(定時器中斷)+encoder(編碼器)-逐飛TC264庫學(xué)習(對比STM32 HAL庫)

    PIT , 是programmable interval timer?可編程間隔定時器 DSC中的器件 的縮寫,所以就是定時器中斷,有點像32里的timer(TIMx) 目前看來一共能用通道的有四個 typedef enum // 枚舉通道號 { ? ? CCU60_CH0, ? ? CCU60_CH1, ? ? CCU61_CH0, ? ? CCU61_CH1, }pit_index_enum; 因為涉及到中斷,為方便設(shè)定中斷優(yōu)

    2024年03月15日
    瀏覽(40)
  • 【嵌入式】STM32計時器編碼器接口模式使用

    【嵌入式】STM32計時器編碼器接口模式使用

    使用STM32調(diào)試電機或傳感器時經(jīng)常會使用到計數(shù)器的編碼器接口模式,本文主要記錄該模式的固件庫配置方法,并給出使用該模式獲取光柵測距值的實例。 硬件: STM32F103C8T6 光柵測距傳感器 編碼器接口模式為STM32計時器的一種特殊使用模式,該模式下可對編碼器輸出的脈沖信

    2024年02月20日
    瀏覽(20)
  • STM32——TIM編碼器接口

    STM32——TIM編碼器接口

    Encoder Interface 編碼器接口 編碼器接口可接收增量(正交)編碼器的信號,根據(jù)編碼器旋轉(zhuǎn)產(chǎn)生的正交信號脈沖, 自動控制CNT自增或自減 ,從而指示編碼器的位置、旋轉(zhuǎn)方向和旋轉(zhuǎn)速度 每個高級定時器和通用定時器都擁有 1個編碼器接口 ,C8T6擁有4個編碼器接口 兩個輸入引腳

    2024年01月19日
    瀏覽(57)
  • STM32 TIM編碼器接口

    STM32 TIM編碼器接口

    單片機學(xué)習! 目錄 文章目錄 前言 一、編碼器接口簡介 1.1 編碼器接口作用 1.2 編碼器接口工作流程 1.3 編碼器接口資源分布 1.4?編碼器接口輸入引腳 二、正交編碼器 2.1 正交編碼器功能 2.2 引腳作用 2.3 如何測量方向 2.4 正交信號優(yōu)勢 2.5 執(zhí)行邏輯 三、編碼器定時器框圖 3.1 編

    2024年04月14日
    瀏覽(23)
  • STM32移植LVGL+旋轉(zhuǎn)編碼器接口對接

    STM32移植LVGL+旋轉(zhuǎn)編碼器接口對接

    寫在前面:本菜鳥結(jié)合了許多大佬的文章,成功實現(xiàn)了基于LVGL的GUI設(shè)計,小開心~淺淺記錄一下!~ 本文以單片機STM32F103VET6為核心,利用ST7796芯片驅(qū)動分辨率為480*320的LCD液晶屏模塊,移植LVGL,對接顯示接口,對接外部接口——旋轉(zhuǎn)編碼器,完成以上兩步,就可以實現(xiàn)LVGL的顯

    2024年02月10日
    瀏覽(45)
  • 【嵌入式學(xué)習-STM32F103-TIM-編碼器接口】

    【嵌入式學(xué)習-STM32F103-TIM-編碼器接口】

    編碼器測速相當于測頻法測正交脈沖的頻率,CNT計次,每隔一段時間取一次計次。高級,它是帶方向的計次。 通過定時器的編碼器接口來實現(xiàn)自動計次。之前的代碼是通過觸發(fā)外部中斷,然后在中斷函數(shù)里手動進行計次。使用編碼器接口的好處就是節(jié)約軟件資源。對于頻繁執(zhí)

    2024年02月01日
    瀏覽(44)
  • stm32-編碼器測速

    stm32-編碼器測速

    編碼電機 旋轉(zhuǎn)編碼器 A,B相分別接通道一和二的引腳,VCC,GND接單片機VCC,GND 以前的代碼是通過觸發(fā)外部中斷,然后在中斷函數(shù)里手動進行計次。使用編碼器接口的好處就是節(jié)約軟件資源。對于頻繁執(zhí)行,操作簡單的任務(wù),一般設(shè)計一個硬件電路模塊來自動完成。 使用定時器

    2024年03月19日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包