打印
[MM32硬件]

新手,求教MM32F0010 两个外部中断可以设置成同一中断函数吗?

[复制链接]
565|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
打小就不错|  楼主 | 2022-2-22 19:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 打小就不错 于 2022-2-22 19:35 编辑

RT.
我试过将两个中断,设置成两个中断处理函数,是正常的,两个端口产生中断有先后顺序(先后的时间没评估过,在1ms内或者更小吧)。
先说问题,当我将两个外部中断设置成同一个中断处理函数时,似乎有点不正常:当进入中断时,判断中断SR寄存器,两个中断口的中断状态都读到信息了【这样我就没办法判断,两个中断产生的先后顺序了】。
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
    GPIO_StructInit(&GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);


//PA.2 use EXTI line 2
    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource2);
    EXTI_InitStructure.EXTI_Line = EXTI_Line2;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//EXTI_Trigger_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
          NVIC_InitStructure.NVIC_IRQChannel = EXTI2_3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 0x01;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
        
          //PA.15 use EXTI line 15
    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource15);
    EXTI_InitStructure.EXTI_Line = EXTI_Line15;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//EXTI_Trigger_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
    NVIC_InitStructure.NVIC_IRQChannel = EXTI2_3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 0x01;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);


void EXTI2_3_IRQHandler(void)
{               
                if((EXTI_GetITStatus(EXTI_Line2) != RESET) && (EXTI_GetITStatus(EXTI_Line15) != RESET))
                {
                                printf("EXTI2_3_IRQHandler Pin Error\n");
                }        EXTI_ClearFlag(EXTI_Line15);
EXTI_ClearFlag(EXTI_Line2);
}


刚学,求大神指点。

使用特权

评论回复
沙发
tpgf| | 2022-3-3 09:22 | 只看该作者
应该是可以的吧

使用特权

评论回复
板凳
paotangsan| | 2022-3-3 09:31 | 只看该作者
那就得手动更改了

使用特权

评论回复
地板
renzheshengui| | 2022-3-3 09:45 | 只看该作者
把他俩的中断向量改成一个是不是可以呢

使用特权

评论回复
5
wakayi| | 2022-3-3 09:57 | 只看该作者
那在哪个文件进行更改或者说在哪个文件里边找到相关终端向量呢

使用特权

评论回复
6
wowu| | 2022-3-3 10:07 | 只看该作者
是同一个排的吗

使用特权

评论回复
7
xiaoqizi| | 2022-3-3 10:13 | 只看该作者
不分辨是那个引脚产生的吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝