STM32CubeMX-H7-2.定时器中断控制灯的亮灭

前言

感觉还是直接上定时器就好,后面再更新几种按键,包括阻塞式和非阻塞式,学了定时器更好理解非阻塞式

STM32CubeMX定时器配置

假设我选的是定时器2

1.按红色方框选择

2.查看定时器连接的时钟对应的频率

可以看出APB1和APB2都是64M

3.设置定时时间

假设我想要的是500ms一次

那么((6400-1+1)*(5000-1+1))/64 000 000=0.5s

主要是看0的个数,6个0就是秒,5个0就是100s为单位,以此类推

4.使能中断

5.然后生成文件

keil配置

1.在初始化后面加上使能中断函数

HAL_TIM_Base_Start_IT(&htim2); 

2.在tim.c文件加上定时器中断回调函数,并编写定时任务

在文件末尾添加

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){  
    if(htim == &htim2) 
   {
   	HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0); 
   }
}

烧录后实现LED灯每500ms翻转