金牌会员
 
- 积分
- 1159
- 金钱
- 1159
- 注册时间
- 2019-3-25
- 在线时间
- 101 小时
|
20金钱
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
led_Init();
TIM3_Int_Init(4999,7199);//10Khz的计数频率:72 000 000/7200=10 000;计数到5000为500ms:5000/10 000=0.5s
while(1)
{
}
}
#include"timer3.h"
#include"led.h"
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
//定时器TIM3初始化
TIM_TimeBaseStructure.TIM_Period=arr;
TIM_TimeBaseStructure.TIM_Prescaler=psc;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
//中断优先级NVIC设置
NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM3,ENABLE);//使能TIM3
}
//定时器3服务中断程序
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)
{
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
LED0=!LED0;
}
}
|
|