baonng 发表于 2012-10-16 17:04:03

关于STM32F407的中断嵌套 【悬赏问答】

这两天写程序,发现我的程序的中断嵌套有问题,优先级的顺序不对啊。中断初始化程序如下:
void ADC1_INT_Config(void)
{

        NVIC_InitTypeDef      NVIC_InitStructure;

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

        NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);

}
void TIM3_INT_Config(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;

        /* Enable the TIM3 gloabal Interrupt */
        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);

}
现在的问题是,TIM3的中断总是能够抢占ADC的中断。跟NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 值设置大小没有关系啊!!!!
请知道的指教啊,谢谢!

xiaodc88 发表于 2012-10-31 18:21:24

RE:关于STM32F407的中断嵌套 【悬赏问答】

你把ADC设置成主优先级,把TIM设置成副优先级应该就可以了

shahexu 发表于 2012-11-1 17:14:55

RE:关于STM32F407的中断嵌套 【悬赏问答】

选择NVIC_PriorityGroup_1)试试,高的设置成0, 0 低的设置成1, 0

zykzyk-93033 发表于 2012-11-2 22:19:36

RE:关于STM32F407的中断嵌套 【悬赏问答】

在TIM3配置函数里面增加 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0)函数进行优先级组配置。这样即可。:D

xieyuanfu 发表于 2012-11-9 14:13:06

RE:关于STM32F407的中断嵌套 【悬赏问答】

楼主要先把你的优先级分组的代码贴出来中断里面的优先级是对的了应该是分组没有分对
页: [1]
查看完整版本: 关于STM32F407的中断嵌套 【悬赏问答】