STM32CubeMX_Exp4A_四通道PWM波(脈寬固定)__簡明指導檔案__jyb

在電機控制中往往會用到多通道PWM波,本實驗輸出4路不同佔空比的PWM波。

第一步:建立工程

建立新工程Experiment_4A_4CH_PWM。ioc,選擇TIM3,TIM3的Mode配置如所示。

STM32CubeMX_Exp4A_四通道PWM波(脈寬固定)__簡明指導檔案__jyb

TIM3模式配置

STM32CubeMX_Exp4A_四通道PWM波(脈寬固定)__簡明指導檔案__jyb

TIM3引數配置

注意:選擇從Channel1~Channel4輸出PWM波後,PA6、PA7、PB0、PB1自動配置成立了複用埠TIM3_CH1~ TIM3_CH4。

72MHz經過(1+719)分頻後是0。1MHz,再經過(1+999)分頻後是0。1KHz,可見每個計數週期是10ms,也就是說PWM波的週期是10ms。這裡只能拿示波器進行觀察,所以將CH極性設定為High。其中Pulse的值決定佔空比。因為計數週期是1000,將CH1的Pluse設定為499+1,則CH1佔空比為50%,CH2的佔空比為20%,CH3的佔空比為10%,CH4的佔空比為1%。

第二步:新增程式碼

在main。c裡面新增如下程式碼:

/* USER CODE BEGIN 2 */

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); //開啟TIM3,從Channel_1(即PA6)輸出PWM波

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); //開啟TIM3,從Channel_2(即PA7)輸出PWM波

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); //開啟TIM3,從Channel_3(即PB0)輸出PWM波

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4); //開啟TIM3,從Channel_4(即PB1)輸出PWM波

/* USER CODE END 2 */

第三步:編譯、下載、執行

下載、執行程式,用示波器觀察可看到PA6、PA7、PB0、PB1輸出頻率為100Hz,佔空比分別為50%、20%、10%、1%的脈衝波形。修改各通道Pulse的值,可觀察到PA6、PA7、PB0、PB1輸出脈衝的佔空比改變。佔空比=(Pulse+1)/(Counter Period+1)。也可用LED燈做粗略觀察和比較。