程序要求
通过定时器中断配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反(闪烁)。
Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
1.定时器中断实现步骤
(1)能定时器时钟
RCC_APB1PeriphClockCmd();
(2)初始化定时器,配置ARR,PSC
TIM_TimeBaseInit();
(3)开启定时器中断,配置NVIC
void TIM_ITConfig();
NVIC_Init();
(4)使能定时器
TIM_Cmd();
(5)编写中断服务函数
TIMx_IRQHandler();
代码
main.c
#include "key.h"
#include "led.h"
#include "timer.h"
#include "sys.h"
#include "delay.h"
int main(void)
{
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LED_Init();
LED0=0;
LED1=1;
TIM3_Int_Init(4999,7199); //10Khz ?????,??? 5000 ? 500ms
whil