新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2018-8-2
- 在线时间
- 7 小时
|
9金钱
adc_config_t adc1_config;
adc_channel_config_t adc1_chan7; //ADC1通道7
//ADC引脚,GPIO_AD_B1_02 -> ADC1_IN7
void MY_ADC1_Init(void)
{
//ADC配置,adc不需要配置相应的引脚
ADC_GetDefaultConfig(&adc1_config); //先配置为默认值
adc1_config.referenceVoltageSource=kADC_ReferenceVoltageSourceAlt0; //参考电压源
adc1_config.samplePeriodMode=kADC_SamplePeriod2or12Clocks; //采样周期模式
adc1_config.clockSource=kADC_ClockSourceAD; //时钟源采用adack,噪声低
adc1_config.clockDriver=kADC_ClockDriver1; //1分频
adc1_config.resolution=kADC_Resolution12Bit; //分辨率 12位
ADC_Init(ADC1,&adc1_config); //初始化ADC1
ADC_EnableHardwareTrigger(ADC1, false); //ADC硬件出发关闭
ADC_DoAutoCalibration(ADC1); //硬件校准
}
//获取adc值
u16 NXP_Adc1_Get(u8 ch)
{
u16 adc_value;
//ADC通道配置
adc1_chan7.channelNumber=ch; //通道7
adc1_chan7.enableInterruptOnConversionCompleted=false; //关闭转换完成中断
ADC_SetChannelConfig(ADC1,0,&adc1_chan7);
while(ADC_GetChannelStatusFlags(ADC1,0)==0){}; //等待转换完成
adc_value=ADC_GetChannelConversionValue(ADC1,0); //读取adc值
return adc_value;
}
//获取制定通道的转换值,取times次,然后平均
//times:获取次数
//返回值:通道ch的times次转换结果平均值
u16 NXP_Adc1_Get_Average(u8 ch,u8 times)
{
|
|