功能:LED每500ms闪烁一次
步骤:
1、结构体的定义
2、使能LED(GPIOC外设)/定时器/中断/定时器中断
3、初始化LED/定时器
4、配置中断分组NVIC
5、编写中断服务函数(重:溢出中断发生函数/清除某中断标志位)
知识点须知:
定时器简介:
1)F4中共14个定时器;
2)TIM1/TIM8高级定时器、TIM2到TIM5/TIM9到TIM14通用定时器、TIM6/TIM7基本定时器
通用定时器(本项目):
1)16位或32位自动重载计数器,由可编译预分频器驱动
2)应用场景:测量输入信号的脉冲长度;产生输出波形PWM等
3)每个通用定时器完全独立,没有相互共享的资源
本实验相关寄存器:
感兴趣的姐妹可以自己查看数据手册(因为项目直接调用了库,但寄存器部分也很重要)
1、结构体的定义
GPIO_InitTypeDef GPIO_InitStructure;//LED
NVIC_InitTypeDef NVIC_InitStructure;//NVIC
TIM_TimeBaseInitTypeDef TIM_InitStructure;
2、使能LED(GPIOC外设)/定时器/中断/定时器中断
//使能定时器 及TIM3 外设时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//ʹĜGPIOCʱ֓ 外设时钟使能
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//使能 定时器时钟TIM3
//设置TIM3_DIER允许更新中断
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//参数2:指明使能的定时器中断类型 更新(该项目为更新)、触发、输入捕获
3、初始化LED/定时器
将所有的参数都配置了一次,主要是方便以后回溯,怕日后遗忘
//LED 初始化 仅需设置前两个参数即可,后面三个均为默认
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Low_Speed;
GPIO_Init(GPIOC , &GPIO_InitStructure);
//定时器初始化 通用定时器 四个参数即可
// TIM_InitStructure.TIM_Prescaler