一.CubeMx配置
配置PWM的具体参数,预分频系数为 71,自动重装载值为 499,定时器溢出频率,即PWM的周期,就是 72MHz/(71+1)/(499+1) = 2kHz
二.重要代码(注意要开启PWM输出)
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); //开启PWM输出
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,50); //设置默认的占空比值
三.在keil中实现
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM4_Init();
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); //一定要开启PWM通道的输出
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
for(int i=0;i<100;i++)
{
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,i);
HAL_Delay(20);
}
for(int i=0;i<100;i++)
{
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,100-i);
HAL_Delay(20);
}
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}