微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助各位大神,这是程序出了错误吗

求助各位大神,这是程序出了错误吗

时间:10-02 整理:3721RD 点击:
我想要用PC0,PC1,PC2采样三路电压,但是程序运行时,发现采集的数据是错误的,是哪里出错了吗是哪里设置错了吗?我只采样PC0时没有错误,现在想采样三相,我就在采集一相的基础上改成了三相,用get_adc(channel_10,1)采集A路,get_adc(channel_11,2)采集B路,get_adc(channel_12,3)采集C路,不知道哪里出错误了,c路通道我没有输入电压,居然也测出来了,不知道哪里出错了
void  Adc_Init(void)
{        
        ADC_InitTypeDef ADC_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_ADC1,ENABLE );         
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);
          
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;      
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;               
        GPIO_Init(GPIOC, &GPIO_InitStructure);       
        ADC_DeInit(ADC1);
        ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;       
        ADC_InitStructure.ADC_ScanConvMode = ENABLE;       
        ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;       
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_CC2;       
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;       
        ADC_InitStructure.ADC_NbrOfChannel = 3;       
        ADC_Init(ADC1, &ADC_InitStructure);       
        ADC_Cmd(ADC1, ENABLE);       
       
        ADC_ResetCalibration(ADC1);       
        while(ADC_GetResetCalibrationStatus(ADC1));       
       
        ADC_StartCalibration(ADC1);
        while(ADC_GetCalibrationStatus(ADC1));       
}                                  

u16 Get_Adc(u8 ch,u8 rank)
{
        ADC_RegularChannelConfig(ADC1, ch, rank, ADC_SampleTime_71Cycles5);        
  ADC_ExternalTrigConvCmd(ADC1, ENABLE);                       
        while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));
        return ADC_GetConversionValue(ADC1);       
}

求解啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top