STM32實現等精度測頻

2021-10-22 14:16:46 字數 600 閱讀 9432

上一章介紹了利用stm32的tim的捕獲功能實現頻率測量的方法,但測量誤差受被測訊號頻率的影響,不適合測量頻率變化較大的 。本章將介紹等精度測頻的方法以及stm32的實現。

基本原理

首先看一張圖:

傳統的測頻方式,閘門放時間是固定的,閘門時間內被測訊號的計數個數nx不一定是整數個,因此會有一定的誤差,且誤差與被測訊號頻率有關。而等精度測頻的方法,閘門時間不是固定的,而是被測訊號的整數倍。 因此消除了對被測訊號計數的±1誤差,其誤差只與標準訊號的計數個數ns的±1誤差有關。可以看出,閘門時間越長,標準頻率fs越大,ns的計數值越大,±1誤差的影響就小。在相同的閘門時間內,被測訊號的頻率fx=nx*fs/ns。

stm32的實現

實現等精度測頻用到兩個定時器,其中乙個定時器用於產生閘門時間,另外乙個用於捕獲被測訊號和標準訊號計數。

實現步驟:

tim1設定約1秒的閘門時間。

tim3捕獲到被測訊號上公升沿后,將tim1計

stm32晶元休眠模式 stm32實現待機喚醒

stm32的低功耗模式有3種 1 睡眠模式 cm3核心停止,外設仍然執行 2 停機模式 所有時鐘都停止 3 待機模式 1.8v核心電源關閉 進入待機模式的方法,以及設定wk up引腳用於把stm32從待機模式喚醒的方法 一般步驟如下 1 設定sleepdeep位 scb scr的第二位 2 使能電源...

STM32紅外的實現

剛畢業不久,這可以說是我在公司做的第乙個專案吧,跟大家分享一下!一 環境 公司所採用的是stm32f103rbt6晶元,本人開發是基於官方提供的v3.5.0的函式庫。二 所要實現的功能是 1.開發板能夠學習由遙控器傳送來的紅外碼,並在串列埠上列印出來。2.上位機通過串列埠程式,傳送學習來的碼,可控制...

STM32紅外的實現

剛畢業不久,這可以說是我在公司做的第乙個專案吧,跟大家分享一下!一 環境 公司所採用的是stm32f103rbt6晶元,本人開發是基於官方提供的v3.5.0的函式庫。二 所要實現的功能是 1.開發板能夠學習由遙控器傳送來的紅外碼,並在串列埠上列印出來。2.上位機通過串列埠程式,傳送學習來的碼,可控制...