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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

目錄

概述

電氣連接

波形分析

思路?

HAL初始化

代碼

?成品


概述

EC11是一種增量型AB相旋轉編碼器

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

增量型是與絕對性做的區分,意味著輸出的信號與當前的位置沒有關系,與旋轉的方向和角度有關

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

有兩個線輸出根據相位判斷方向,根據高低電平數量判斷走過度數

電氣連接

原理圖

?

EC11常見額定電壓是5V,實測3.3V也可以驅動,但不建議使用3.3V(會出現雜波)?

阻容是為了進行上拉輸出和硬件濾波

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

C為接地

SW為內部的開關,可以當作輕觸按鍵使用(注意加軟件濾波)

波形分析

數據手冊的截圖

實測順時針轉動一格

?

實測逆時針轉動一格?

解釋:

每轉動一格(拿到實物自己實驗下很容易理解什么叫一格),AB相會出現一個持續10-150ms的低電平,默認為高電平狀態

順時針轉動時A相的低電平會比B相提前

逆時針轉動時A相的低電平會比B相延后

思路?

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

因此需要的外設有:

  • 外部中斷
  • 一個輸入狀態的GPIO
  • 注意:

  • 因為要直接接入5V的電壓,因此需要GPIO耐壓為5V(即為數據手冊表FT的管腳)
  • 未避免干擾,輸入狀態和外部中斷的GPIO設置為上拉模式(不知道為啥浮空輸入干擾賊大)
  • 外部中斷上升沿和下降沿均可(這里以下降沿為例)
  • HAL初始化

    外部中斷和NVIC

    GPIO

    代碼

    為了便于后期的調用,這邊做了一個回調函數,可以在觸發順時針或者逆時針的旋轉的時候自動調用這個函數

    頭文件

    //外部中斷 #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百度網盤https://pan.baidu.com/s/1TTc5ARIb-szfsha9MoE_lA?pwd=cwi9%C2%A0

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。