目录
一,定时器
1,新建工程
2,配置引脚
注意这里是把PC15引脚设置为D1
3,配置定时器
4,设置中断
5,修改代码
HAL_TIM_Base_Start_IT(&htim2);
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint32_t time_cnt =0;
if(htim->Instance == TIM2)
{
if(++time_cnt >= 100)
{
time_cnt =0;
HAL_GPIO_TogglePin(D1_GPIO_Port,D1_Pin);
}
}
}
修改后,编译,烧录,可以看到LED1差不多每隔0.5秒翻转一次
二,PWM
1,配置定时器
2,修改代码
uint16_t duty_num = 10;
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(50);
duty_num = duty_num + 10;
if(duty_num > 500)
{
duty_num = 0;
}
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_2,duty_num);
}
修改后,保存,编译、下载,重新上电。可以看到LED2,从亮倒暗,逐渐变化。