上一章介紹了利用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.上位機通過串列埠程式,傳送學習來的碼,可控制...