中级会员
 
- 积分
- 249
- 金钱
- 249
- 注册时间
- 2016-10-8
- 在线时间
- 50 小时
|
求大神看下我下面的程序错在哪里
int main(void)
{
/* Init Test Status LED */
TestStatusLedInit();
/* Flash LED for test */
FlashLED ( 5 );
TIM3_Int_Init(4999,7199); //加这句语句,while语句不能执行;不加这句语句,while语句可以执行。
while (1)
{
/* Turn on LED */
GPIOC->BOR = GPIO_PIN_10;
/* Insert 200 ms delay */
Delay(200);
/* Turn off LED */
GPIOC->BCR = GPIO_PIN_10;
/* Insert 200 ms delay */
Delay(200);
}
}
void TIM3_Int_Init(uint16_t arr,uint16_t psc)
{
TIMER_BaseInitPara TIM_TimeBaseStructure;
NVIC_InitPara NVIC_InitStructure;
RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_TIMER3, ENABLE);
TIM_TimeBaseStructure.TIMER_Period = arr;
TIM_TimeBaseStructure.TIMER_Prescaler =psc;
TIM_TimeBaseStructure.TIMER_ClockDivision = 0;
TIM_TimeBaseStructure.TIMER_CounterMode = TIMER_COUNTER_UP;
TIMER_BaseInit(TIMER3, &TIM_TimeBaseStructure);
TIMER_INTConfig(TIMER3,TIMER_INT_UPDATE,ENABLE);
NVIC_PRIGroup_Enable(NVIC_PRIGROUP_2);
NVIC_InitStructure.NVIC_IRQ=TIMER3_IRQn;
NVIC_InitStructure.NVIC_IRQPreemptPriority=0;
NVIC_InitStructure.NVIC_IRQSubPriority=3;
NVIC_InitStructure.NVIC_IRQEnable=ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIMER_Enable(TIMER3, ENABLE);
}
void TIMER3_IRQHandler(void)
{
if(TIMER_GetIntBitState(TIMER3,TIMER_INT_UPDATE)!=RESET)
{
TIMER_ClearIntBitState(TIMER3,TIMER_INT_UPDATE);
}
}
这是主要程序的部分,在main函数中添加这句话 TIM3_Int_Init(4999,7199);后,while中的语句就没有执行了,也没有看到定时器3的中断语句执行;如果注释掉这句语句,while中的语句就可以执行了,求大神帮忙看看是什么问题?
|
|