[STM32F0] STM32F030F4芯片的ADC1的PA5会有0.06伏电压的正偏移?

[复制链接]
2747|8
 楼主| zxm19820916 发表于 2016-6-8 12:02 | 显示全部楼层 |阅读模式
用的ADC1的第5通道,即PA5管脚。使用DMA传输,DMA传输完成中断中求采样平均值。得到的电压值和实际测量到的有偏差。有朋友碰到这个情况吗?
xmshao 发表于 2016-6-8 15:12 | 显示全部楼层
记得启动AD转换前 做校准;
电源尽量干净;
适当加长下采样时间看看;
 楼主| zxm19820916 发表于 2016-6-12 10:51 | 显示全部楼层
按照官方例程ADC_DMA配置,启动前做了校准,难道校准得不对?
采样时间我选择的是最长的239.5周期。时钟2M。
598330983 发表于 2016-6-12 15:25 | 显示全部楼层
悬空了吧?这玩意儿不能悬空的,不用时候拉到地。
 楼主| zxm19820916 发表于 2016-6-15 15:37 | 显示全部楼层
598330983 发表于 2016-6-12 15:25
悬空了吧?这玩意儿不能悬空的,不用时候拉到地。

模拟量输入管脚配置不是应该配置为悬空吗?即不上拉也不下拉
lefeng 发表于 2016-6-15 19:45 | 显示全部楼层
启动AD转换前 ,怎么做校准啊
309030106 发表于 2016-6-15 21:45 | 显示全部楼层
是不是外围电路把电压抬高了
ideafor 发表于 2016-6-15 22:08 | 显示全部楼层
你初始化完之后应该先校准一下ad的
 楼主| zxm19820916 发表于 2016-6-17 09:32 | 显示全部楼层
ideafor 发表于 2016-6-15 22:08
你初始化完之后应该先校准一下ad的

有做校准,参考官方例程代码如下:
void ADC_Config(void)
{
  ADC_InitTypeDef     ADC_InitStructure;
  
  /* ADCs DeInit */  
  ADC_DeInit(ADC1);
  
  /* Initialize ADC structure */
  ADC_StructInit(&ADC_InitStructure);
  /* Configure the ADC1 in continuous mode with a resolution equal to 12 bits  */
  ADC_InitStructure.ADC_Resolution                         = ADC_Resolution_12b;
  ADC_InitStructure.ADC_ContinuousConvMode         = ENABLE;
  ADC_InitStructure.ADC_ExternalTrigConvEdge         = ADC_ExternalTrigConvEdge_None;
  ADC_InitStructure.ADC_DataAlign                         = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_ScanDirection                 = ADC_ScanDirection_Upward;
  ADC_Init(ADC1, &ADC_InitStructure);
  
  /* Convert the ADC1 Channel 5 with 239.5 Cycles as sampling time */
  ADC_ChannelConfig(ADC1, ADC_Channel_5, ADC_SampleTime_239_5Cycles);

  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);
       
  /* ADC DMA request in circular mode */
  ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);
  
  /* Enable ADC_DMA */
  ADC_DMACmd(ADC1, ENABLE);
  
  /* Enable the ADC peripheral */
  ADC_Cmd(ADC1, ENABLE);     
  
  /* Wait the ADRDY flag */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
  
  /* ADC1 regular Software Start Conv */
  ADC_StartOfConversion(ADC1);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

299

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部