STM32F103的DAC PA5 (ADC1)有0.4V的电压

2019-07-14 17:13发布

我在用STM32f103的时侯需要用两的DAC, 写了如下的config程序,   本意是让 ADC1 , ADC2 都先归结为0电位,测试后发现,PA4 (ADC0)没问题,但 PA5 (ADC1) 量得却有 0.4V 的电压,请问大师们,程序有 bug吗?

void ConfigDAC(void)
{
  
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
               
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
               
                GPIO_SetBits(GPIOA, GPIO_Pin_4);
                GPIO_SetBits(GPIOA, GPIO_Pin_5);
}

{
  DAC_InitTypeDef DAC_InitStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
                DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095;
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);
  DAC_Init(DAC_Channel_2, &DAC_InitStructure);
                DAC_Cmd(DAC_Channel_1, ENABLE);
                DAC_SetChannel1Data(DAC_Align_12b_R, 0);
                DAC_Cmd(DAC_Channel_2, ENABLE);
                DAC_SetChannel2Data(DAC_Align_12b_R, 0);
        }
        
}  

搜索
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
cmh29
2019-07-15 05:18
void ConfigDAC(void)
{

  
        {
                GPIO_InitTypeDef GPIO_InitStructure;

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

                GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
               
                GPIO_Init(GPIOA, &GPIO_InitStructure);

                GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOA, &GPIO_InitStructure);

               
                GPIO_SetBits(GPIOA, GPIO_Pin_4);
                GPIO_SetBits(GPIOA, GPIO_Pin_5);
        }


        {
                DAC_InitTypeDef DAC_InitStructure;

                RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
                DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
                DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
                DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
                DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095;

                DAC_Init(DAC_Channel_1, &DAC_InitStructure);
                DAC_Init(DAC_Channel_2, &DAC_InitStructure);

                DAC_Cmd(DAC_Channel_1, ENABLE);
                DAC_SetChannel1Data(DAC_Align_12b_R, 0);
                DAC_Cmd(DAC_Channel_2, ENABLE);
                DAC_SetChannel2Data(DAC_Align_12b_R, 0);
        }
        

}  

一周热门 更多>