STM32F1學習——編碼器接口

一、編碼器接口

? ? ? ? 編碼器接口可以接收正交編碼器的信號,根據編碼器旋轉產生的正交信號脈沖,通過硬件自動控制CNT值的自增或自減,從而指出編碼器的位置、旋轉方向和旋轉速度。

? ? ? ? 每個高級定時器和通用定時器都有一個編碼器接口,他們會占用TIM的CH1和CH2兩個通道。

二、編碼器接口結構框圖

? ? ? ? 編碼器接到CH1和CH2通過濾波器和和邊沿檢測電路,通過TI1FP1和TI2FP2來到編碼器接口,編碼器接口這時給下面的時基單元提供基礎脈沖,來促使CNT++或CNT--,從而達到記錄速度和位置的特點。

? ? ? ? 將上圖簡化一下可以得到這樣的一個圖。

??

三、計數方向與編碼器信號的關系

? ? ? ? 在一般情況下我們會選擇最后一種,在TI1和TI2上計數,也就是CH1和CH2任意一個引腳跳變,都會導致CNT計數。

? ? ? ? A相一邊接到TI1FP1 , B相是TI1FP2。

????????正轉時,A相超前B相90度,A相出現上升沿,B相為低,則CNT++。B相上升沿,A相高,則CNT++。當A相下降沿B項高CNT++。當B相下降沿,A相低時,CNT++;

? ? ? ? 反轉時,A相滯后B相90度。查表同理。

四、硬件抗干擾

? ? ? ? 這里我們僅分析毛刺階段,計數器如何操作的。當A相上升沿,B相低,CNT++; A相下降沿,B相低,CNT--。這種毛刺信號并不會導致CNT的值累加,實現硬件抗干擾。

五、代碼

? ? ? ? 在本次實驗中,我們使用單片機一邊進行定時器TIM2定時中斷,在定時中斷里面讀取TIM3接收編碼器的CNT值。這里僅介紹Encoder的編碼邏輯,TIM2的不詳細介紹。 ①開啟TIM3、GPIO時鐘。②配置GPIO和時基單元。③配置輸入捕獲IC,捕獲CH1和CH2。④配置成編碼器模式后開啟時鐘。

????????為了節省文章篇幅,代碼已經放在github倉庫里了。hal庫的暫未更新,請耐心等待。

STM32F103c8t6_learning/GPIO_std/STM32f1_Encoder at main · Jiang-kun02/STM32F103c8t6_learning

參考

[6-7] TIM編碼器接口_嗶哩嗶哩_bilibili

[6-8] 編碼器接口測速_嗶哩嗶哩_bilibili

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

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

相關文章

如何刪除 Docker 中的懸虛鏡像?

在 Docker 中,懸虛鏡像(Dangling Images)是指那些沒有 標簽 且沒有被任何容器使用的鏡像。這些鏡像通常是由于構建過程中生成的中間層鏡像或未正確清理的鏡像殘留。刪除懸虛鏡像可以釋放磁盤空間并保持 Docker 環境的整潔。 1. 列出懸虛鏡像…

網絡安全的學習與實踐經驗(附資料合集)

學習資源 在線學習平臺: Hack This Site:提供從初學者到高級難度的挑戰任務,適合練習各種網絡安全技術。XCTF_OJ:由XCTF組委會開發的免費在線網絡安全網站,提供豐富的培訓材料和資源。SecurityTube:提供豐…

ts是什么、tsc是什么、tsx是什么、jsx是什么、scss是什么

一、TS (TypeScript): TypeScript 是一種由微軟開發的開源編程語言,它是 JavaScript 的一個超集,增加了類型系統和對ES6及以后版本新特性的支持。TypeScript 旨在解決 JavaScript 開發中的可維護性、可擴展性和大型項目中的復雜性問題。它允許開發者在編…

行業商機信息付費小程序系統開發方案

行業商機信息付費小程序系統,主要是整合優質行業資源,實時更新的商機信息。在當今信息爆炸的時代,精準、高效地獲取行業商機信息對于企業和個人創業者而言至關重要。 一、使用場景 日常瀏覽:用戶在工作間隙或閑暇時間&#xff0c…

[Qt] 輸入控件 | Line | Text | Combo | Spin | Date | Dial | Slider

目錄 輸入類控件 1、Line Edit 錄入個人信息 使用正則表達式驗證輸入框的數據 驗證兩次輸入的密碼一致 切換顯示密碼 2、Text Edit 獲取多行輸入框的內容 驗證輸入框的各種信號 3、Combo Box 使用下拉框模擬麥當勞點餐 從文件中加載下拉框的選項 4、Spin Box 調整…

Flink CDC 自定義函數處理 SQLServer XML類型數據 映射 doris json字段方案

Flink CDC 自定義函數處理 SQLServer XML類型數據方案 1. 背景 因業務使用SQLServer數據庫,CDC同步到doris 數倉。對于SQLServer xml類型,doris沒有相應的字段對應, 可以使用json來存儲xml數據。需要進行一步轉換。從 flink 自定義函數入手…

C語言:cJSON將struct結構體與JSON互相轉換

文章目錄 struct 轉 jsonjson 轉 struct 文檔&#xff1a; https://github.com/DaveGamble/cJSON 項目結構 . ├── libs │ ├── cJSON.c │ └── cJSON.h └── main.c示例 struct 轉 json #include "libs/cJSON.h" #include <stdio.h>// defi…

JeeSite 快速開發平臺:全能企業級快速開發解決方案|GitCode 光引計劃征文展示

投稿人GitCode ID&#xff1a;thinkgem 光引計劃投稿項目介紹 JeeSite 快速開發平臺&#xff0c;不僅僅是一個后臺開發框架&#xff0c;它是一個企業級快速開發解決方案&#xff0c;后端基于經典組合 Spring Boot、Shiro、MyBatis&#xff0c;前端采用 Beetl、Bootstrap、Admi…

2025/1/4期末復習 密碼學 按老師指點大綱復習

我們都要堅信&#xff0c;道路越是曲折&#xff0c;前途越是光明。 --------------------------------------------------------------------------------------------------------------------------------- 現代密碼學 第五版 楊波 第一章 引言 1.1三大主動攻擊 1.中斷…

【架構設計(一)】常見的Java架構模式

常見的 Java 架構模式解析 在 Java 開發領域&#xff0c;選擇合適的架構模式對于構建高效、可維護且能滿足業務需求的軟件系統至關重要。本文將深入探討幾種常見的 Java架構模式&#xff0c;包括單體架構與微服務架構、分層架構與微服務架構的對比&#xff0c;以及事件驅動架構…

opencv與halcon的差距及改進方法

本文是直接問ai獲得的結果。 在我理解中&#xff0c;這是開源軟件與商業非開源工業軟件的普遍差距特點。 商業非開源工業軟件的人員、資金、時間投入是巨大的&#xff0c;開發人員也不是普通人普通水平。 一般情況下&#xff0c;試圖通過開源軟件改吧改吧就實現彎道超車&#x…

Java 內存溢出(OOM)問題的排查與解決

在 Java 開發中&#xff0c;內存溢出&#xff08;OutOfMemoryError&#xff0c;簡稱 OOM&#xff09;是一個常見且棘手的問題。相比于數組越界、空指針等業務異常&#xff0c;OOM 問題通常更難定位和解決。本文將通過一次線上內存溢出問題的排查過程&#xff0c;分享從問題表現…

AF3 AtomAttentionEncoder類解讀

AlphaFold3的AtomAttentionEncoder 類用于處理基于原子的表示學習任務。 源代碼: class AtomAttentionEncoderOutput(NamedTuple):"""Structured output class for AtomAttentionEncoder."""token_single: torch.Tensor # (bs, n_tokens, c_…

【51單片機零基礎-chapter3:按鍵:獨立按鍵|||附帶常見C語句.邏輯運算符】

將unsigned char var0;看作溝通二進制和十進制的橋梁 var是8位,初始為0000 0000; 同時可以進行十進制的運算 邏輯運算 位運算 & 按位與(有0則0) | 按位或(有1則1) ~ 按位非 ^ 按位異或(相同則1,不同為0) <<按位左移 >>按位右移 位運算符解釋: 0011 1100 <&…

游戲如何檢測iOS越獄

不同于安卓的開源生態&#xff0c;iOS一直秉承著安全性更高的閉源生態&#xff0c;系統中的硬件、軟件和服務會經過嚴格審核和測試&#xff0c;來保障安全性與穩定性。 據FairGurd觀察&#xff0c;雖然iOS系統具備一定的安全性&#xff0c;但并非沒有漏洞&#xff0c;如市面上…

在Lua中,Metatable元表如何操作?

Lua中的Metatable&#xff08;元表&#xff09;是一個強大的特性&#xff0c;它允許我們改變表&#xff08;table&#xff09;的行為。下面是對Lua中的Metatable元表的詳細介紹&#xff0c;包括語法規則和示例。 1.Metatable介紹 Metatable是一個普通的Lua表&#xff0c;它用于…

Python基于matplotlib實現樹形圖的繪制

在Python中&#xff0c;你可以使用matplotlib庫來繪制樹形圖&#xff08;Tree Diagram&#xff09;。雖然matplotlib本身沒有專門的樹形圖繪制函數&#xff0c;但你可以通過組合不同的圖形元素&#xff08;如線條和文本&#xff09;來實現這一點。 以下是一個簡單的示例&#…

2 秒殺系統架構

第一步 思考面臨的問題和業務場景 秒殺系統面臨的問題: 短時間內并發非常高&#xff0c;如果按照秒殺的并發做相應的承載會造成大量資源的浪費。第二解決超賣的問題。 第二步 思考目前的處境和解決方案 因為秒殺系統屬于短時間內的高并發問題&#xff0c;我們不可能使用那么…

12306分流搶票軟件 bypass v1.16.43 綠色版(春節自動搶票工具)

軟件介紹 12306Bypass分流搶票軟件&#xff0c;易操作強大的12306搶票軟件&#xff0c;全程自動搶票&#xff0c;云識別驗證碼打碼&#xff0c;多線程秒單、穩定撿漏&#xff0c;支持搶候補票、搶到票自動付款&#xff0c;支持多天、多車次、多席別、多乘客、短信提醒等功能。…

淺談torch.utils.data.TensorDataset和torch.utils.data.DataLoader

1.torch.utils.data.TensorDataset 功能定位 torch.utils.data.TensorDataset 是一個將多個張量&#xff08;Tensor&#xff09;數據進行簡單包裝整合的數據集類&#xff0c;它主要的作用是將相關聯的數據&#xff08;比如特征數據和對應的標簽數據等&#xff09;組合在一起&…