硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5031|回复: 2
收起左侧

[有问必答] STM32F407IG单片机中断优先级使用分组4可否配置为无中断嵌套吗?

[复制链接]

13

主题

56

回帖

95

积分

初级会员

积分
95
发表于 2018-9-6 15:49:31 | 显示全部楼层 |阅读模式
    例如:                  UART5的抢占优先级=0、USART1的抢占优先级=0、USART2的抢占优先级=0,但是
                  UART5响应优先级=1
                  USART1响应优先级=0
                  USART2响应优先级=0
         我这样设置的目的是防止中断嵌套,但是当同时触发UART5、USART1和USART2中断时,可以优先响应UART5中断。






    NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn;//定义串口5中断通道
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级=0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//响应优先级=1
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能串口5中断
    NVIC_Init(&NVIC_InitStructure);//调用库函数初始化串口5中断   

   
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//定义串口1中断通道     
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级=0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//响应优先级=0
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能串口1中断
    NVIC_Init(&NVIC_InitStructure);//调用库函数初始化串口1中断        
   
   
    NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;//定义串口2中断通道     
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级=0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//响应优先级=0
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能串口2中断
    NVIC_Init(&NVIC_InitStructure);//调用库函数初始化串口2中断



我是新手,请多多关照。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2018-9-7 15:51:45 | 显示全部楼层
不好意思,楼主,刚看到你的问题

NVIC优先级分组采用4的情况下,只有抢占优先级PreemptionPriority,没有子优先级SubPriority,也就是设置子优先级是没有作用的,当几个同抢占优先级的中断到来,在中断向量表里面排名靠前的,优先响应。

关于NVIC的问题,我这个帖子总结的比较详细:
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=21094
回复

使用道具 举报

13

主题

56

回帖

95

积分

初级会员

积分
95
 楼主| 发表于 2018-9-12 09:37:56 | 显示全部楼层
谢谢硬汉!!!
我是新手,请多多关照。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-17 16:35 , Processed in 0.035972 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表