日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【STM32F4系列】【HAL库】旋转编码器(EC11)

發(fā)布時(shí)間:2024/3/7 编程问答 117 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【STM32F4系列】【HAL库】旋转编码器(EC11) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

概述

電氣連接

波形分析

思路?

HAL初始化

代碼

?成品


概述

EC11是一種增量型AB相旋轉(zhuǎn)編碼器

旋轉(zhuǎn)編碼器是一種可以無限旋轉(zhuǎn)的旋鈕,常被作為各種需要大量數(shù)據(jù)范圍的情況(如收音機(jī)選臺(tái),音量選擇等)

增量型是與絕對性做的區(qū)分,意味著輸出的信號(hào)與當(dāng)前的位置沒有關(guān)系,與旋轉(zhuǎn)的方向和角度有關(guān)

AB相指的是一種輸出模式(也可以認(rèn)為是一種協(xié)議)

有兩個(gè)線輸出根據(jù)相位判斷方向,根據(jù)高低電平數(shù)量判斷走過度數(shù)

電氣連接

原理圖

?

EC11常見額定電壓是5V,實(shí)測3.3V也可以驅(qū)動(dòng),但不建議使用3.3V(會(huì)出現(xiàn)雜波)?

阻容是為了進(jìn)行上拉輸出和硬件濾波

A,B為旋轉(zhuǎn)信息的輸出(兩相)

C為接地

SW為內(nèi)部的開關(guān),可以當(dāng)作輕觸按鍵使用(注意加軟件濾波)

波形分析

數(shù)據(jù)手冊的截圖

實(shí)測順時(shí)針轉(zhuǎn)動(dòng)一格

?

實(shí)測逆時(shí)針轉(zhuǎn)動(dòng)一格?

解釋:

每轉(zhuǎn)動(dòng)一格(拿到實(shí)物自己實(shí)驗(yàn)下很容易理解什么叫一格),AB相會(huì)出現(xiàn)一個(gè)持續(xù)10-150ms的低電平,默認(rèn)為高電平狀態(tài)

順時(shí)針轉(zhuǎn)動(dòng)時(shí)A相的低電平會(huì)比B相提前

逆時(shí)針轉(zhuǎn)動(dòng)時(shí)A相的低電平會(huì)比B相延后

思路?

很明顯可以看出,只需要在A(或B)相的一個(gè)邊沿(上升下降均可),檢測另一相的電平高低即可

因此需要的外設(shè)有:

  • 外部中斷
  • 一個(gè)輸入狀態(tài)的GPIO
  • 注意:

  • 因?yàn)橐苯咏尤?V的電壓,因此需要GPIO耐壓為5V(即為數(shù)據(jù)手冊表FT的管腳)
  • 未避免干擾,輸入狀態(tài)和外部中斷的GPIO設(shè)置為上拉模式(不知道為啥浮空輸入干擾賊大)
  • 外部中斷上升沿和下降沿均可(這里以下降沿為例)
  • HAL初始化

    外部中斷和NVIC

    GPIO

    代碼

    為了便于后期的調(diào)用,這邊做了一個(gè)回調(diào)函數(shù),可以在觸發(fā)順時(shí)針或者逆時(shí)針的旋轉(zhuǎn)的時(shí)候自動(dòng)調(diào)用這個(gè)函數(shù)

    頭文件

    //外部中斷 #define EC11_A_GPIO_Group GPIOA #define EC11_A_GPIO_PIN GPIO_PIN_0// GPIO輸入 #define EC11_B_GPIO_Group GPIOA #define EC11_B_GPIO_PIN GPIO_PIN_1 void EC11_Decode(void (*Clockwise)(void), void (*Anticlockwise)(void));

    C文件

    void EC11_Decode(void (*Clockwise)(void), void (*Anticlockwise)(void)) {//Delay_ms(1);if (HAL_GPIO_ReadPin(EC11_B_GPIO_Group, EC11_B_GPIO_PIN) == GPIO_PIN_SET){Anticlockwise();}else{Clockwise();} }

    ?成品

    GitHubhttps://github.com/HZ1213825/HAL_STM32F4_EC11/settings百度網(wǎng)盤https://pan.baidu.com/s/1TTc5ARIb-szfsha9MoE_lA?pwd=cwi9%C2%A0

    總結(jié)

    以上是生活随笔為你收集整理的【STM32F4系列】【HAL库】旋转编码器(EC11)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。