打印
[STM32]

求助:stm32f303CBT6 两个中断共用一个中断子函数,怎么区分

[复制链接]
2687|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongbin1128|  楼主 | 2014-12-23 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发用的芯片为stm32f303CBT6,在stm32的3代芯片中,ADC1和ADC2是共用同一个中断子函数的,ADC_1_2_IRQHandler,,这样ADC1和ADC2的中断发生后都进入了这个中断子函数,请教各位,有什么方法可以区分这两个中断

相关帖子

沙发
戈卫东| | 2014-12-24 10:51 | 只看该作者
查询相应的状态寄存器?

使用特权

评论回复
板凳
crystal1987| | 2014-12-24 12:37 | 只看该作者
建议参考以下代码;三个中断公用一个中断函数。
void EXTI9_5_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line5) != RESET)
        {
               
        }
        else if (EXTI_GetITStatus(EXTI_Line6) != RESET)
        {
               
        }
        else if (EXTI_GetITStatus(EXTI_Line7) != RESET)
        {
       
        }
        EXTI_ClearITPendingBit(EXTI_Line5);  
        EXTI_ClearITPendingBit(EXTI_Line6);
        EXTI_ClearITPendingBit(EXTI_Line7);
}

使用特权

评论回复
地板
dongbin1128|  楼主 | 2014-12-24 14:50 | 只看该作者
戈卫东 发表于 2014-12-24 10:51
查询相应的状态寄存器?

stm32 程序编程时用的都是库,已经把底层的状态寄存器都屏蔽掉了,所以我感觉还是应该查看相应的标志位,但怎么弄我还不清楚。我现在有一个想法,在ADC查看中断标志状态的函数中,有一个是regular channel,还有一个是injected channel,我想把两个中断设置成这两个模式,再在中断子函数中进行判断,但不知道是否可行,我试一下看看吧

使用特权

评论回复
5
dongbin1128|  楼主 | 2014-12-24 14:54 | 只看该作者
crystal1987 发表于 2014-12-24 12:37
建议参考以下代码;三个中断公用一个中断函数。
void EXTI9_5_IRQHandler(void)
{

在ADC查看中断标志状态的函数中,有一个是regular channel,还有一个是injected channel,我想把两个中断设置成这两个模式,再在中断子函数中进行判断,请问一下,你这样做过吗,这样是否可行

使用特权

评论回复
6
crystal1987| | 2014-12-24 16:21 | 只看该作者
dongbin1128 发表于 2014-12-24 14:54
在ADC查看中断标志状态的函数中,有一个是regular channel,还有一个是injected channel,我想把两个中断 ...

这样还着没做过,不过有条件的话,建议你自己试试。理论上我觉得应该行得通。

使用特权

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

本版积分规则

4

主题

8

帖子

0

粉丝