STM32使用旋轉編碼開關

一、旋轉編碼開關如何工作

????????編碼器內部有一個開槽圓盤,連接到公共接地引腳 C。它還具有兩個接觸針 A 和 B,如下所示。

????????當您轉動旋鈕時,A 和 B 按照特定順序與公共接地引腳 C 接觸,具體順序取決于轉動旋鈕的方向。

????????當它們與公共地接觸時,會產生兩個信號。這些信號存在 90° 異相,因為一個引腳先于另一個引腳接觸公共地。它被稱為正交編碼。

????????當順時針旋轉旋鈕時,A 引腳先于 B 引腳接地。當逆時針旋轉旋鈕時,B 引腳先于 A 引腳接地。

????????通過監控每個引腳何時連接或斷開接地,我們可以確定旋鈕旋轉的方向。這可以通過簡單地觀察 A 的狀態改變時 B 的狀態來完成。

????????當改變狀態時,如果 A:下降沿,B:為高電平,則順時針轉動旋鈕。


????????當改變狀態時,如果 A:下降沿,B:為低電平,則逆時針轉動旋鈕。

????????總的來說,旋轉編碼開關是一種功能強大、應用廣泛的電子元器件,在工業自動化、機器人技術、伺服控制系統、電梯、電機控制、音視頻設備、游戲控制器以及其他需要精確位置控制和速度反饋的各種機械設備中都有重要的應用。

二、 Cube MX 具體配置

????????首先需要在CubeMX中選擇適當的引腳連接旋轉編碼開關的輸出引腳,并將其設置為EXTI模式,然后對引腳啟用中斷功能。

????????在配置過程中,還有一個重要的步驟是將引腳進行上拉。上拉電阻用于確保引腳保持在高電平狀態。這有助于防止由于噪聲或干擾而導致的誤觸發。我這里使用的是B14、B15引腳,具體的配置如下所示。

三、具體代碼實現?

????????通過EXTI的回調函數來判斷A、B引腳的IO口哪個先觸發。當A或者B引腳觸發后,然后通過檢測另外一個引腳的狀態來確定波動旋轉編碼開關的方向,具體操作如下所示。

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){if(GPIO_Pin == GPIO_PIN_14){if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15)){direction=1;num++;}}else if(GPIO_Pin == GPIO_PIN_15){if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_14)){direction=2;num--;}}}
  • direction變量為:旋轉的方向;
  • num變量為:旋轉計數值;

完整代碼示例:https://download.csdn.net/download/qq_26043945/89322458

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14372.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14372.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14372.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在 package.json 文件中,版本號前的 ^ 符號含義

在 package.json 文件中,版本號前的 ^ 符號有特定的含義,它控制了包依賴的版本范圍。 具體來說,^ 符號表示兼容性范圍符號,允許安裝與指定版本兼容的更新版本。 例如,“vue”: “^3.0.0” 意味著: 可以安…

Web3 游戲平臺 Creo Engine 銷毀代幣總量的20%,以促進長遠發展

Creo Engine 5月16日進行了第三次代幣銷毀,這次的銷毀占代幣總量的 20%。一共銷毀了2億 $CERO 代幣,市場價值接近 2000 萬美元。 Creo Engine 致力于連接世界、為玩家提供一站式游戲中心,并提升 Web3 游戲體驗。 Creo Engine 發布于2022年&am…

USB抓包工具:bushound安裝及使用

一、環境搭建 下載busbound6.01安裝包,安裝完成,重啟電腦。 二、工具配置 按照下圖配置工具: 使能自動識別新設備 2. 設置抓取數據的容量 三、抓包 回到capture選項卡,在頁面的右下角有個run的按鈕,點擊使能&…

RedHat9 | 磁盤管理

硬盤分區類型 MBR分區方案 MBR也被稱為主引導記錄,它存在0柱面0磁道0扇區內,在磁盤的第一個扇區內,大小為512字節 512字節包含:446字節初始化程序加載器、64字節分區表、2字節校驗碼由于每個分區為16字節,所以MBR只…

Git配置詳解

天行健,君子以自強不息;地勢坤,君子以厚德載物。 每個人都有惰性,但不斷學習是好好生活的根本,共勉! 文章均為學習整理筆記,分享記錄為主,如有錯誤請指正,共同學習進步。…

js實現元素根據鼠標滾輪滾動向左右上下滑動著從模糊到清楚顯示出來

html代碼 <div ref{test} id"animatedElement" className"not-animated"> <div style{{width:"100px",height:"50px",backgroundColor:"red"}}> </div> </div> JS代碼 const te…

用智能插件(Fitten Code: Faster and Better AI Assistant)修改好了可以持久保存的vue3留言板

天際 第一修改是選項式&#xff1a; <!-- 模板結構 --> <template><div><textarea placeholder"請輸入備注內容" v-model"newItem"></textarea><button click"addItem">添加</button><hr><…

Vue2+Element 封裝評論+表情功能

有需要的小伙伴直接拿代碼即可&#xff0c;不需要下載依賴&#xff0c;目前是初始版本&#xff0c;后期會進行代碼的優化。 評論組件如下&#xff1a; 創建 comment.vue 文件。 表情組件 VueEmoji.vue 在評論組件中使用。 <template><div class"comment"…

《主對角線求和》

描述 有一個n行n列的二維數組&#xff0c;請你求出二維數組的主對角線上的所有數字的和是多少。 輸入描述 第一行一個整數n&#xff0c;代表下面輸入的是n行n列(2≤n≤10)的二維數組&#xff1b; 接下來n行&#xff0c;每行n列&#xff0c;表示二維數組的每個元素各是多少。 …

數字孿生技術在管理中有哪些實際應用?

隨著科學技術的不斷提高&#xff0c;數字孿生技術也在不斷的從理論應用至現實&#xff0c;并且涉及領域較為廣泛。 在生產運營管理層面&#xff0c;通過構建數字孿生模型&#xff0c;企業可以精準模擬和優化生產線&#xff0c;實現生產流程的智能化和高效化。比如&#xff0c;…

TypeScript-搭建編譯環境

搭建編譯環境 TypeScript 編寫的代碼是無法直接在js引擎( 瀏覽器 / Nodejs )中運行的&#xff0c;最終還需要經過編譯成js代碼才可以正常運行 搭建手動編譯環境 1?? 全局安裝 typescript 包&#xff08;編譯引擎&#xff09; -> 注冊 tsc 命令 npm i -g typescript 2…

下拉框操作/鍵鼠操作/文件上傳

在我們做UI自動化測試的時候&#xff0c;會有一些元素需要特殊操作&#xff0c;比如下拉框操作/鍵鼠操作/文件上傳。 下拉框操作 在我們很多頁面里有下拉框的選擇&#xff0c;這種元素怎么定位呢&#xff1f;下拉框分為兩種類型&#xff1a;我們分別針對這兩種元素進行定位和…

2024最新 Jenkins + Docker 實戰教程(五)- 配置Gitee Webhooks實現自動構建部署

&#x1f604; 19年之后由于某些原因斷更了三年&#xff0c;23年重新揚帆起航&#xff0c;推出更多優質博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有堅忍不拔之志 &#x1f390; 個人CSND主頁——Mi…

Packet Tracer-HSRP+DHCPv4+VLAN間路由+以太通道綜合實驗

實驗拓撲&#xff1a; 實驗內容&#xff1a; VLAN及VLAN間路由的配置&#xff0c;以太通道的配置&#xff0c;STP的根調整&#xff0c;DHCPv4的配置&#xff0c;首跳冗余HSRP的配置。 實驗最終結果&#xff1a; PC可以自動獲取到DHCP-Server分配的IP地址&#xff0c;實現首跳…

【Sentinel】Sentinel配置zk持久化

代碼 import cn.hutool.core.util.StrUtil; import com.alibaba.csp.sentinel.datasource.ReadableDataSource; import com.alibaba.csp.sentinel.datasource.zookeeper.ZookeeperDataSource; import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule; import com.a…

信息系統工程師--八大績效域-交付績效域

信息系統工程師的八大績效域包括&#xff1a;干系人、團隊、開發方法和生命周期、項目工作、規劃、交付、度量、不確定性。 預期目標 1、項目有助于實現業務目標和戰略 2、項目實現了預期成果 3、在預定時間內實現了項目收益 4、項目團隊對需求有清晰的理解 5、干系人接受…

GitLab的原理及應用詳解(五)

本系列文章簡介: 隨著軟件開發的不斷進步和發展,版本控制系統成為了現代軟件開發過程中不可或缺的一部分。而GitLab作為其中一種流行的版本控制工具,在軟件開發領域享有廣泛的應用。GitLab不僅提供了強大的版本控制功能,還集成了項目管理、持續集成和部署、代碼審查等多個功…

web學習筆記(五十七)

目錄 1. 面試題總結 1.1 public和assets區別 1.2 vite的作用 1.3 vue單頁面應用 1.4 組件分為兩種類型&#xff1a; 1.5 App.vue文件 1.6 main.js 1.7 vue2中為什么不能直接監聽到數組的改變&#xff1f; 2. .vue頁面的組成 3. ref 響應式數據 1. 面試題總結 1.1…

Web3革命:探索科技與物聯網的無限可能

引言 Web3時代正在悄然而至&#xff0c;帶來了對互聯網的徹底顛覆和改變。作為互聯網的下一代&#xff0c;Web3不僅是技術革新的延續&#xff0c;更是對傳統互聯網模式的重新構想。在這個新時代&#xff0c;科技與物聯網的結合將迎來無限的可能性&#xff0c;將探索到一片全新…

iOS系統故障怎么辦?這三種蘋果手機系統修復方法你一定要知道

隨著蘋果手機使用時間越長&#xff0c;蘋果手機有時也會出現系統問題&#xff0c;如卡頓、崩潰、無法啟動等。這些問題不僅影響用戶的使用體驗&#xff0c;還可能導致數據丟失。因此&#xff0c;掌握蘋果手機系統修復方法顯得尤為重要。本文將詳細介紹蘋果手機系統修復的常見方…