STM32F429 单路ADC两个通道为什么第二个通道采不到信号!!!急!!!

2019-07-20 12:40发布

这是我的ADC配置
void  Adc_Init(void)
{   
        //Ïè3õê¼»ˉIO¿ú
        RCC->APB2ENR|=1<<8;            //ê1&#196;üADC1ê±&#214;ó
        RCC->AHB1ENR|=1<<0;            //ê1&#196;üPORTAê±&#214;ó          
        GPIO_Set(GPIOA,PIN5,GPIO_MODE_AIN,0,0,GPIO_PUPD_PU);        //PA5,&#196;£&#196;aê&#228;è&#235;,&#207;&#194;à-   
        GPIO_Set(GPIOA,PIN4,GPIO_MODE_AIN,0,0,GPIO_PUPD_PU);        //PA5,&#196;£&#196;aê&#228;è&#235;,&#207;&#194;à-  
        RCC->APB2RSTR|=1<<8;           //ADCs&#184;′&#206;&#187;
        RCC->APB2RSTR&=~(1<<8);        //&#184;′&#206;&#187;&#189;áê&#248;         
        ADC->CCR=1<<16;                        //ADCCLK=PCLK2/4=90/4=22.5Mhz,ADCê±&#214;ó×&#238;o&#195;2&#187;òa3&#172;1y36Mhz
       
        ADC1->CR1=0;                           //CR1éè&#214;&#195;&#199;&#229;á&#227;
        ADC1->CR2=0;                           //CR2éè&#214;&#195;&#199;&#229;á&#227;
        ADC1->CR1|=0<<24;              //12&#206;&#187;&#196;£ê&#189;
        ADC1->CR1|=0<<8;            //·&#199;é¨&#195;è&#196;£ê&#189;       
       
        ADC1->CR2 |=(1<<1);            //×a&#187;&#187;&#196;£ê&#189;
        ADC1->CR2&=~(1<<11);           //óò&#182;&#212;&#198;&#235;       
        ADC1->CR2|=0<<28;            //èí&#188;t′¥·¢
       
        ADC1->SQR1 &= ~(0XF<<20);
        ADC1->SQR1|=0<<20;             //1&#184;&#246;×a&#187;&#187;&#212;ú1&#230;&#212;òDòáD&#214;D ò2&#190;íê&#199;&#214;&#187;×a&#187;&#187;1&#230;&#212;òDòáD1                           
        //éè&#214;&#195;í¨μà5μ&#196;2é&#209;ùê±&#188;&#228;
        ADC1->SMPR2&=~(7<<(3*5));//í¨μà52é&#209;ùê±&#188;&#228;&#199;&#229;&#191;&#213;          
        ADC1->SMPR2|= 1<<(3*5);         //í¨μà5  480&#184;&#246;&#214;ü&#198;ú,ìá&#184;&#223;2é&#209;ùê±&#188;&#228;&#191;éò&#212;ìá&#184;&#223;&#190;&#171;è·&#182;è         
        ADC1->SMPR2&=~(7<<(3*4));//í¨μà52é&#209;ùê±&#188;&#228;&#199;&#229;&#191;&#213;          
        ADC1->SMPR2|= 1<<(3*4);         //í¨μà5  480&#184;&#246;&#214;ü&#198;ú,ìá&#184;&#223;2é&#209;ùê±&#188;&#228;&#191;éò&#212;ìá&#184;&#223;&#190;&#171;è·&#182;è         
        ADC1->CR2|=1<<0;                   //&#191;a&#198;&#244;AD×a&#187;&#187;&#198;÷          
}       


用的是例程的初始化  加了 PIN4 但是我用PA4接输入信号的时候就采不到点 用PA5接的时候就采的到

我用的是定时器采样
void TIM3_IRQHandler(void)
{                                                                   
        if(TIM3->SR&0X0001)//ò&#231;3&#246;&#214;D&#182;&#207;
        {
                if(state == 0)
                {
                        if(adc_tmp <= 8190)
                        {
                                D_ADC_data[adc_tmp] = (float)Get_Adc(5);
                                adc_tmp += 2;
                        }
                        else
                        {
                                adc_tmp = 0;
                                state = 1;
                                TIM3->CR1 &= ~0x01;    //11&#216;±&#213;&#182;¨ê±&#198;÷
                        }
                }
                if(state == 2)
                {
                        if(adc_tmp <= 8190)
                        {
                                B_ADC_data[adc_tmp] = (float)Get_Adc(4);
                                adc_tmp += 2;
                        }
                        else
                        {
                                adc_tmp = 0;
                                state = 3;
                                TIM3->CR1 &= ~0x01;    //11&#216;±&#213;&#182;¨ê±&#198;÷
                        }
                }
        }                                  
        TIM3->SR&=~(1<<0);//&#199;&#229;3y&#214;D&#182;&#207;±ê&#214;&#190;&#206;&#187;             

}

查不出 错了啊  好急!! 求各位大哥帮忙看一看哪里配置出了问题
定时器是没问题的 我把Get_Adc( )里的5和4互换了的话 也是PA4的引脚没有采到数据

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lyrgwlr
1楼-- · 2019-07-20 18:23
在线等 跪求大神搭救
lyrgwlr
2楼-- · 2019-07-20 18:54
我的想法是 第一路信号先转换 存完之后 进行一部分其他操作 然后再回来转换第二路信号  然后再出去
正点原子
3楼-- · 2019-07-20 22:52
 精彩回答 2  元偷偷看……

一周热门 更多>