這里的單脈沖控制是指在PWM下產生指定個數的脈沖。
先在CubeMx中按照PWM進行配置。
定義一個變量表示脈沖個數。
uint8_t PWMnum = 5;
開啟PWM中斷。
HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_1);
定義脈沖完成回調函數。 uint8_t cnt = 0;
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == htim1.Instance)
{ cnt++; if(cnt == PWMnum)
{ HAL_TIM_PWM_Stop_IT(&htim1, TIM_CHANNEL_1); PWMnum = 0; cnt = 0; } } }
通過設置PWMnum即可控制輸出脈沖數量。