用CubeMX创建工程
选择一个载有TIM2的管脚,此处选择A6
在RCC栏选择:
在SYS栏选择:
在TIM3勾选:
并在按下图进行配置:
在NVIC里面选择TIM中断:转到PROJECT MANAGER,勾选:
选择编译器
编写代码
设置启动定时器和中断
// 启动 PWM 和定时器
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
// 启动定时器并启用中断
HAL_TIM_Base_Start_IT(&htim3);
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
if (htim->Instance == TIM3) {
static int toggle = 0;
if (toggle == 0) {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
toggle = 1;
} else {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
toggle = 0;
}
}
}
开启时钟
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
while (pwmVal< 500)
{
pwmVal++;
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, pwmVal);
HAL_Delay(1);
}
while (pwmVal)
{
pwmVal--;
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, pwmVal);
HAL_Delay(1);
}
HAL_Delay(200);