|
本帖最后由 mayulin 于 2021-2-25 13:18 编辑
目前进行4路通道采样,分别为CH1,CH4,CH9,CH10,采用相同的配置和方式单独进行采样,其中CH1,CH4较准,CH9,CH10偏大,大了几百mv,按《ADC》应用手册的说法,大几百mv是VREF122 采样时间不够导致的,但我这里现在不是这个情况,而是感觉快速通道的准,慢速通道的不准,望大神指教。
芯片型号是FM33LC043
AD配置如下:
FL_GPIO_InitTypeDef GPIO_InitStruct;
FL_ADC_InitTypeDef defaultInitStruct;
GPIO_InitStruct.pin = FL_GPIO_PIN_10 | FL_GPIO_PIN_8;
GPIO_InitStruct.mode = FL_GPIO_MODE_ANALOG;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = DISABLE;
GPIO_InitStruct.remapPin = DISABLE;
FL_GPIO_Init( GPIOC, &GPIO_InitStruct );
GPIO_InitStruct.pin = FL_GPIO_PIN_1;
GPIO_InitStruct.mode = FL_GPIO_MODE_ANALOG;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = DISABLE;
GPIO_InitStruct.remapPin = DISABLE;
FL_GPIO_Init( GPIOD, &GPIO_InitStruct );
GPIO_InitStruct.pin = FL_GPIO_PIN_15;
GPIO_InitStruct.mode = FL_GPIO_MODE_ANALOG;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = DISABLE;
GPIO_InitStruct.remapPin = DISABLE;
FL_GPIO_Init( GPIOA, &GPIO_InitStruct );
defaultInitStruct.conversionMode = FL_ADC_CONV_MODE_SINGLE;
defaultInitStruct.autoMode = FL_ADC_SINGLE_CONV_MODE_AUTO;
defaultInitStruct.waitMode = ENABLE;
defaultInitStruct.overrunMode = ENABLE;
defaultInitStruct.scanDirection = FL_ADC_SEQ_SCAN_DIR_BACKWARD;
defaultInitStruct.externalTrigConv = FL_ADC_TRIGGER_EDGE_NONE;
defaultInitStruct.triggerSource = FL_ADC_TRGI_PA8;
defaultInitStruct.fastChannelTime = FL_ADC_FAST_CH_SAMPLING_TIME_48_ADCCLK;
defaultInitStruct.lowChannelTime = FL_ADC_FAST_CH_SAMPLING_TIME_48_ADCCLK;
defaultInitStruct.oversamplingMode = ENABLE;
defaultInitStruct.overSampingMultiplier = FL_ADC_OVERSAMPLING_MUL_16X;
defaultInitStruct.oversamplingShift = FL_ADC_OVERSAMPLING_SHIFT_4B;
FL_ADC_Init(ADC,&defaultInitStruct );
|
|