// 步骤2:新建ADC初始化函数
void RT1052_ADC_Init(void)
{
adc_config_t adcConfigStruct;
adc_channel_config_t adcChannelConfigStruct;
/*
* config->enableAsynchronousClockOutput = true;
* config->enableOverWrite = false;
* config->enableContinuousConversion = false;
* config->enableHighSpeed = false;
* config->enableLowPower = false;
* config->enableLongSample = false;
* config->referenceVoltageSource = kADC_ReferenceVoltageSourceVref;
* config->samplePeriodMode = kADC_SamplePeriod2or12Clocks;
* config->clockSource = kADC_ClockSourceAD;
* config->clockDriver = kADC_ClockDriver1;
* config->resolution = kADC_Resolution12Bit;
*/
ADC_GetDefaultConfig(&adcConfigStruct);
//最大resolution 12bit 只有外部参考
//adcConfigStruct.referenceVoltageSource=kADC_ReferenceVoltageSourceAlt0;
//开启连续转换模式
adcConfigStruct.enableContinuousConversion=true;
ADC_Init(ADC1, &adcConfigStruct);
//开启ADC中断
EnableIRQ(ADC1_IRQn);
//开启ADC1 自动校准
ADC_DoAutoCalibration(ADC1);
//关闭硬件触发
ADC_EnableHardwareTrigger(ADC1, false);
//读取通道0
adcChannelConfigStruct.channelNumber = 0;
adcChannelConfigStruct.enableInterruptOnConversionCompleted = true;
// Channe_group 0 用于软件或者硬件出发
ADC_SetChannelConfig(ADC1, 0u /*ADC_CHANNEL_GROUP*/, &adcChannelConfigStruct);
}
|