實現這個功能,基本原理是利用STM32 的輸出比較功能。
1、其它設置就是普通定時器的設置這里開啟,四個輸出比較中斷,和一個更新中斷,
更新中斷這里不需要開也可以達到目的,我這里開啟是做其它的用處的。設置TIM2->DIER 開啟對應中斷
這是中斷服務函數中的一段,框出來的就是實現調頻率的,
首先要知道,定時器的CNT=CCRx就會產生一個中斷,每次修改
CCRx中的值,CNT照常加,當CNT=CCRx時就重新設置一個值,為
CNT的追趕值,這時就可以通過改寫CCRx的值達到改變頻率的目的了。
這時如果使能了對應的輸出,定時器的對應通道也會輸出電平(操作TIMx->CCMRx中的OCxM)。
注意:頻率可調的前提是不能使能,通道的預裝載,只要不使能這個位,每次更改的CCMRx的值就會即時生效。當然脈沖個數就只需要在中斷中計數就可以了 0.0;
波形個數 = 計數值/2
假如要調節占空比的話,只需要將追趕值分開就可以了。例如 追趕值 = 6000 在單次次進入中斷 CCMRx = 4000 雙次進入中斷的時候CCMRx = 2000這樣不就調節成占空比
1/3了么