STM32暫存器與輸入捕獲

2021-07-25 23:27:21 字數 812 閱讀 8762

以下來至原子教程

輸入捕獲模式可以用來測量脈衝寬度或者測量頻率。

stm32 的定時器,除了 tim6 和 tim7,

其他定時器都有輸入捕獲功能。stm32 的輸入捕獲,簡單的說就是通過檢測 timx_chx 上的

邊沿訊號,在邊沿訊號發生跳變(比如上公升沿/下降沿)的時候,將當前定時器的值(timx_cnt)

存放到對應的通道的捕獲/比較暫存器(timx_ccrx)裡面,完成一次捕獲。同時還可以配置

捕獲時是否觸發中斷/dma 等。

本章我們用到 tim2_ch1 來捕獲高電平脈寬,也就是要先設定輸入捕獲為上公升沿檢測,記

錄發生上公升沿的時候 tim2_cnt 的值。然後配置捕獲訊號為下降沿捕獲,當下降沿到來時,發

生捕獲,並記錄此時的 tim2_cnt 值。這樣,前後兩次 tim2_cnt 之差,就是高電平的脈寬,

同時 tim2 的計數頻率我們是知道的,從而可以計算出高電平脈寬的準確時間。

接下來,我們介紹我們本章需要用到的一些暫存器配置,需要用到的暫存器有: timx_arr、

timx_psc、timx_ccmr1、timx_ccer、timx_dier、timx_cr1、timx_ccr1 這些寄存

器在前面兩章全部都有提到(這裡的 x=2),我們這裡就不再全部羅列了,我們這裡針對性的介紹

這幾個暫存器的配置。

首先 timx_arr 和 timx_psc,這兩個暫存器用來設自動重裝載值和 timx 的時鐘分頻,

用法同前面介紹的,我們這裡不再介紹。

再來看看捕獲/比較模式暫存器 1:timx_ccmr1。

STM32 暫存器版本 輸入捕獲實驗

本人使用的是正點原子的ministm32 本次實驗用到的暫存器仍然是之前學過的那幾個,但是在用法上卻更深入一些,本次實驗的難點個人認為有兩個,一是理解按鍵捕獲的原理,二是理解按鍵捕獲的實現方法。按鍵捕獲的原理 定時器向上計數,定時器被設定為上公升沿捕捉,當按鍵被按下時,捕捉到上公升沿,於是記錄此時的...

STM32蜂鳴器 暫存器

這次實驗犯了個笑話,竟然在巨集定義後面加分號.就像這樣 define 大家千萬不要學我,結果報錯expected expression,還苦惱半天,想為啥操作不了暫存器了?我真愚蠢!剛開始我也不會寫這些東西,其實摸清套路就好,rcc時鐘使能 gpio初始化 相關暫存器初始化 延時函式 串列埠等初始化...

STM32暫存器對映

1.對映即將記憶體的某段位址與某一暫存器對應,微控制器對函式的操作底層是操作暫存器,而暫存器最終是操作記憶體上對應的單元,2.各個暫存器對應的位址都是在st定義的起始位址上層層偏移得到 3.想要實現某功能可直接對此段記憶體寫進相應的值,即可賦予某一功能 4.stm32底層實際是先定義出外設基位址,然...