TA的每日心情 | 奋斗 2024-11-12 19:35 |
---|
签到天数: 12 天 连续签到: 1 天 [LV.3]偶尔看看II
|
本次测评的是MM32SPIN0230B3TV芯片的ADC性能
ADC使用12bit分辨率 十六分频 连续转换模式 240采样转换时间
如图为ADC配置代码
- ADC_InitTypeDef ADC_InitStruct;
- GPIO_InitTypeDef GPIO_InitStruct;
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_ADC1, ENABLE);
- ADC_StructInit(&ADC_InitStruct);
- ADC_InitStruct.ADC_Resolution = ADC_Resolution_12b;
- ADC_InitStruct.ADC_Prescaler = ADC_Prescaler_16;
- ADC_InitStruct.ADC_Mode = ADC_Mode_Continue;
- ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;
- ADC_Init(ADC1, &ADC_InitStruct);
- ADC_SampleTimeConfig(ADC1, ADC_Channel_0, ADC_SampleTime_240_5);
- ADC_SampleTimeConfig(ADC1, ADC_Channel_2, ADC_SampleTime_240_5);
- ADC_SampleTimeConfig(ADC1, ADC_Channel_3, ADC_SampleTime_240_5);
- ADC_AnyChannelNumCfg(ADC1, 2);
- ADC_AnyChannelSelect(ADC1, 0, ADC_Channel_0);
- ADC_AnyChannelSelect(ADC1, 1, ADC_Channel_2);
- ADC_AnyChannelSelect(ADC1, 2, ADC_Channel_3);
- ADC_AnyChannelCmd(ADC1, ENABLE);
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
复制代码
使用ADC测量1.25V电压基准源 并通过串口打印出来 结果保留3位
- while (1)
- {
- while (RESET == ADC_GetFlagStatus(ADC1, ADC_FLAG_EOS))
- {
- }
- ADC_ClearFlag(ADC1, ADC_FLAG_EOS);
- RVxVoltage[0] = (float)ADC_GetChannelConvertedValue(ADC1, ADC_Channel_0) * (float)3.3 / (float)4096.0;
- RVxVoltage[1] = (float)ADC_GetChannelConvertedValue(ADC1, ADC_Channel_2) * (float)3.3 / (float)4096.0;
- RVxVoltage[2] = (float)ADC_GetChannelConvertedValue(ADC1, ADC_Channel_3) * (float)3.3 / (float)4096.0;
- printf("\r\n %0.3f \t",RVxVoltage[0]);//RV2 Voltage = %0.2f \tRV3 Voltage = %0.2f", RVxVoltage[0], RVxVoltage[1], RVxVoltage[2]);
- }
复制代码
原始数据附在文中 数据经过处理后
ADC性能足够日常使用
|
|