查看: 2563|回复: 4

中断优先级

[复制链接]
  • TA的每日心情
    奋斗
    2016-1-28 10:03
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-7-20 12:28:38 | 显示全部楼层 |阅读模式
    分享到:
    /*配置中断引脚*/
    void exti_config(void)
    {
                    //GPIO_InitTypeDef GPIO_InitStructure;
                    EXTI_InitTypeDef EXTI_InitStructure;
                    NVIC_InitTypeDef NVIC_InitStructure;

                    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
                    //设置NVIC优先级分组为Group2:2位先占优先级(0-2),2位子优先级(0-2)

                    GPIO_EXTILineConfig(button_port_source,button1_source);         //选择按键1的GPIO管脚(端口+管脚号)做外中断源
                    GPIO_EXTILineConfig(button_port_source,button2_source);         //选择按键2的GPIO管脚(端口+管脚号)做外中断源

                    EXTI_InitStructure.EXTI_Line = button1_exti_line|button2_exti_line;        //设置按键所有的外部线路
                    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;                                        //设置为外部中断模式
                    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;                                 //设置触发模式为下降沿触发
                    EXTI_InitStructure.EXTI_LineCmd = ENABLE;                                                        //使能该线路中断
                    EXTI_Init(&EXTI_InitStructure);       

                    NVIC_InitStructure.NVIC_IRQChannel = button_irqn;                                //使能按键所在的外部中断通道
                    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;        //
                    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;                    //从优先级15
                    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                                //使能外部中断通道
                    NVIC_Init(&NVIC_InitStructure);         //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器

                       GPIO_EXTILineConfig(button_wakeup_gpio_source, button_wakeup_source);

                    EXTI_InitStructure.EXTI_Line = button_wakeup_exti_line ;        //设置按键所有的外部线路
                    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;                        //设外外部中断模式:EXTI线路为中断请求
                    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
                    EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //使能外部中断新状态
                    EXTI_Init(&EXTI_InitStructure);       

                      NVIC_InitStructure.NVIC_IRQChannel = button_wakeup_irqn;                        //使能按键所在的外部中断通道
                    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;                        //抢占优先级
                    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;                                        //从优先级2
                    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                                //使能外部中断通道
                    NVIC_Init(&NVIC_InitStructure);                                        //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
    }


    既然NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);设置能了2位,2位,为何NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;        //
                    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;                    //从优先级15这里有个15,个人理解2位最大为4吧。求解释?
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-7-21 10:27:29 | 显示全部楼层
    你说的很对,这里的代码没有修改完善,应该是0X03就可以了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-1-28 10:03
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

     楼主| 发表于 2014-7-21 10:47:39 | 显示全部楼层
    亮点 发表于 2014-7-21 10:27
    你说的很对,这里的代码没有修改完善,应该是0X03就可以了

    谢谢亮哥,写超了会在自动截取符合要求的值。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-7-21 11:35:41 | 显示全部楼层
    yilusuiyuan 发表于 2014-7-21 10:47
    谢谢亮哥,写超了会在自动截取符合要求的值。

                                  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-20 09:02
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-12-7 19:00:52 | 显示全部楼层
    我是来赚铜板的
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-25 08:56 , Processed in 0.149611 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.