STM32F103的PWM電機控制

2021-09-24 02:45:13 字數 2886 閱讀 7717

目錄

選擇tim5ch2

1、gpio配置輸出

2、定時器配置

3、呼叫函式使用

初次易錯點:

使用pwm輸出是首先要看,那個引腳使用可以使用pwm輸出。

高階控制和通用定時器通道引腳分布:

高階定時器

通用定時器

tim1

tim8

tim2

tim5

tim3

tim4

ch1

pa8/pe9

pc6pa0/pa15

pa0pa6/pc6/pb4

pb6/pd12

ch1n

pb13/pa7/pe8

pa7ch2

pa9/pe11

pc7pa1/pb3

pa1pa7/pc7/pb5

pb7/pd13

ch2n

pb14/pb0/pe10

pb0ch3

pa10/pe13

pc8pa2/pb10

pa2pb0/pc8

pb8/pd14

ch3n

pb15/pb1/pe12

pb1ch4

pa11/pe14

pc9pa3/pb11

pa3pb1/pc9

pb9/pd15

etr

pa12/pe7

pa0pa0/pa15

pd2pe0

bkin

pb12/pa6/pe15

pa6

static void tim_gpio_config(void) 

/************通用定時器tim引數定義,只限tim2、3、4、5************/

// 當使用不同的定時器的時候,對應的gpio是不一樣的,這點要注意

// 我們這裡預設使用tim5

#define general_tim tim5

#define general_tim_apbxclock_fun rcc_apb1periphclockcmd

#define general_tim_clk rcc_apb1periph_tim5

// tim5 輸出比較通道2

#define general_tim_ch2_gpio_clk rcc_apb2periph_gpioa

#define general_tim_ch2_port gpioa

#define general_tim_ch2_pin gpio_pin_1

////////////////////////////////////////

//5khz

#define general_tim_period (20-1) //計數個數arr

#define general_tim_prescaler (720-1) //週期 分頻數psc

// 占空比配置

uint16_t ccr1_val = 10;

static void tim_mode_config(void)

void pwm_init(void)

void pwm_test(void)

1,沒有注意到相應的輸出比較通道。使用的是ch2,但是函式呼叫的卻是ch1的

tim_setcompare1/tim_setcompare2/tim_setcompare3/tim_setcompare4

tim_oc1init/tim_oc2init/tim_oc3init/tim_oc4init

tim_oc1preloadconfig/tim_oc2preloadconfig/tim_oc3preloadconfig/tim_oc4preloadconfig

2、pwm更改占空比

#define general_tim_period (20-1) //計數個數arr

// 自動重裝載暫存器的值,累計tim_period+1個頻率後產生乙個更新或者中斷

#define general_tim_prescaler (720-1) //週期 分頻數psc

// 驅動cnt計數器的時鐘 = fck_int/(psc+1)

tim_period:定時器週期,實際就是設定自動過載暫存器 arr 的值, arr 為要裝載到實際自動過載暫存器(即影子暫存器) 的值, 可設定範圍為 0 至 65535。

tim_pulse:比較輸出脈衝寬度,實際設定比較暫存器 ccr 的值,決定脈衝寬度。可設定範圍為 0 至 65535。

tim_setcompare1(timx,ccrx);設定pwm占空比

STM32F103學習筆記 (八) PWM輸出

脈衝寬度調製 pwm 是對脈衝寬度的控制。stm32 的定時器除了 tim6 和 7。其他的定時器都可以用來產生 pwm 輸出。其中高階定 時器 tim1 和 tim8 可以同時產生多達 7 路的 pwm 輸出。而通用定時器也能同時產生多達 4 路的 pwm 輸出,這樣,stm32 最多可以同時產生...

STM32F103攻城筆記 PWM功能實戰

系統時鐘是預設的hsi的8mhz頻率!這個會影響計時器的計數頻率,所以要知道要這個頻率,以保證以後自己可以根據分頻來控制pwm輸出波形的頻率大小!這個對於實際專案中的開發很重要,大都電機對於頻率都會有要求,這裡先不糾結這個,我們先來產生不同占空比的波形!系統時鐘預設為8mhz。第一步 初始化相關暫存...

stm32f103外部中斷

void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...