OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3243|回复: 0

STM32的中断的问题

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-3-3
在线时间
3 小时
发表于 2016-3-3 17:29:36 | 显示全部楼层 |阅读模式
首先是设置外部中断0的中断优先级最高,之后进入该中断后,虽然XTI_ClearITPendingBit(EXTI_Line0);清除了中断标志位,但是下次还是会进入该中断,而且是进入到for循环那里,请问是为什么?
void EXTI0_IRQHandler(void)
{       
        volatile uint16_t cnt  = 0;                     //
        volatile static uint8_t circle = 0;             //
        volatile static uint16_t ADCH1cnt = 0;          //
        volatile static uint16_t ADCH2cnt = 9*1024*3;   //
//         volatile static uint16_t ADCH3cnt = 0;          //
//         volatile static uint16_t ADCH4cnt = 9*2048*3;   //í
        EXTI_ClearITPendingBit(EXTI_Line0);
        for(cnt=0; cnt<1024; cnt++) //2048
        {
                while(EXTI_GetITStatus(EXTI_Line0) == RESET); //2
       
                *(pADbuf+ADCH1cnt++) = ADSpiReadByte();
                *(pADbuf+ADCH1cnt++) = ADSpiReadByte();
                *(pADbuf+ADCH1cnt++) = ADSpiReadByte();
                *(pADbuf+ADCH2cnt++) = ADSpiReadByte();
                *(pADbuf+ADCH2cnt++) = ADSpiReadByte();
                *(pADbuf+ADCH2cnt++) = ADSpiReadByte();
                EXTI_ClearITPendingBit(EXTI_Line0);
        }
               
        if(++circle == 9)
        {
                circle=0; ADCH1cnt=0; ADCH2cnt=9*1024*3;
               
                ADReadyFLG=1; ADWordStatus=0;
        }
       
        ADSetCircleCollecte(0); //ê§&#196;ü
        EXTI_ClearITPendingBit(EXTI_Line0);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 02:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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