舵機的控制一般需要乙個20ms左右的時基脈衝,該脈衝的高電平部分一般為0.5ms~2.5ms範圍內的角度控制脈衝部分。以180度角度伺服為例,那麼對應的控制關係是這樣的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
由公式:
定時器溢位時間(s)=( (自動重裝載值-1)*(預分頻值-1) )/定時器輸入時鐘頻率(hz)
自動重裝載值:arr
可程式設計預分頻器: psc
以定時器3為例要配置乙個20ms為週期的時鐘脈衝:
20ms=0.02s
根據公式定時器3在apb1時鐘匯流排下頻率為:36mhz(1mhz=1000000hz)
(arr-1) * (psc-1) = 36mhz * 0.02s
(arr-1) * (psc-1) =720000
只要保證(arr-1) 和(psc-1)的積等於720000那麼這倆的值可以隨意,但是不建議將重裝載值分的太多不方便後面計算。下面是以arr=200 psc是7200
注:如果使用的是正點原子的庫函式版本則需要用72mhz來計算定時器,而如果直接使用stm32cubemx則定時器輸入時鐘頻率為36mhz
當定時器設定是向上計數模式
要讓舵機轉動45°那麼就需要:
1ms/20ms=0.05
200*0.05=10
設定pdcx裝入的新的占空比是:200-10=190
定時器3初始化
void
tim3_pwm_init
(u16 arr,u16 psc)
//main函式下
tim3_pwm_init
(199
,7199);
//定時器使能
tim_setcompare2
(tim3,
190)
;//舵機轉動45°
舵機原理與STM32f103 控制
舵機是通過高電平的占空比來調節輸出軸的角度,舵機的驅動訊號是50hz的方波訊號,每個週期為20ms,其中高電平的佔比在0.5ms 2.5ms之間,對應關係如下 0.5ms 0度 1.0ms 45度 1.5ms 90度 2.0ms 135度 2.5ms 180度 所以我們可以通過控制控制訊號的高電平長...
stm32f103外部中斷
void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...
STM32F103啟動檔案
目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...