OpenEdv-开源电子网

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

STM32F407没有进入AD中断,一直卡在主程序里

[复制链接]

4

主题

17

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-6-4
在线时间
16 小时
发表于 2019-6-30 15:14:41 | 显示全部楼层 |阅读模式
5金钱
adc.c

void ADC1_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//ê1ÄüGPIOAê±Öó
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//PA0 í¨μà0
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//Ä£Äaêäèë
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//2»′øéÏÏÂà-
  GPIO_Init(GPIOA, &GPIO_InitStructure);//3õê¼»ˉ                         
}

void ADC1_Mode_Config(void)
{
        ADC_CommonInitTypeDef ADC_CommonInitStructure;
        ADC_InitTypeDef       ADC_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //ê1ÄüADC1ê±Öó
       
        ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//¶àá¢Ä£ê½
       
        ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//ὸö2éÑù½×¶ÎÖ®¼äμÄÑó3ù5¸öê±Öó
       
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; //DMAê§Äü
       
        ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;//Ô¤·ÖÆμ4·ÖÆμ¡£ADCCLK=PCLK2/4=84/4=21Mhz,ADCê±Öó×îoÃ2»òa3¬1y36Mhz
       
        ADC_InitStructure.ADC_ScanConvMode = DISABLE;//·Çé¨Ãèģ꽠      

  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//¿aÆôá¬Dø×a»»

  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;

  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
       
  ADC_InitStructure.ADC_NbrOfConversion = 1;

        ADC_CommonInit(&ADC_CommonInitStructure);
               
        ADC_Init(ADC1, &ADC_InitStructure);
       
        ADC_Cmd(ADC1, ENABLE);
}
void ADC_NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;

  NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
        ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
}
void  Adc_Init(void)
{   
  ADC1_GPIO_Config();
        ADC1_Mode_Config();
        ADC_NVIC_Config();
}                       
extern u16 adcx;
void ADC1_IRQHandler(void)
{       
        if (ADC_GetITStatus(ADC1,ADC_IT_EOC)==SET)
        {
                adcx = ADC_GetConversionValue(ADC1);
        }
        ADC_ClearITPendingBit(ADC1,ADC_IT_EOC);
}
主程序
main.c
u16 adcx=0;
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);   
        uart_init(115200);       
        LED_Init();                                       
        LCD_Init();      
        Adc_Init();      
        POINT_COLOR=RED;   
        while(1)
        {
                                 
          ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_56Cycles );                                    
    ADC_SoftwareStartConv(ADC1);               
    LCD_ShowxNum(134,150,adcx,4,16,0);                
                delay_ms(500);       
        }
}
一直进不了AD中断,程序貌似会卡在主程序的ADC_SoftwareStartConv(ADC1);
求助~~


最佳答案

查看完整内容[请看2#楼]

问题解决了,AD中断的服务函数名称是ADC_IRQHandler,之前一直没查到服务函数的名称,我误以为是ADC1_IRQHandler了,不过还是谢谢你
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

17

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-6-4
在线时间
16 小时
 楼主| 发表于 2019-6-30 15:14:42 | 显示全部楼层
mvvm 发表于 2019-7-1 08:28
ADC_EOCOnEachRegularChannelCmd(ADC1, ENABLE);
你试试加上这一句,再看看参考手册中文版P259页关于“在 ...

问题解决了,AD中断的服务函数名称是ADC_IRQHandler,之前一直没查到服务函数的名称,我误以为是ADC1_IRQHandler了,不过还是谢谢你
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-7-1 02:23:08 | 显示全部楼层
帮顶
回复

使用道具 举报

4

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-6-15
在线时间
36 小时
发表于 2019-7-1 08:28:02 | 显示全部楼层
本帖最后由 mvvm 于 2019-7-1 08:30 编辑

ADC_EOCOnEachRegularChannelCmd(ADC1, ENABLE);
你试试加上这一句,再看看参考手册中文版P259页关于“在不使用DMA的情况下管理转换序列”的描述。
我用的时候加上了这一句
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-15 03:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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