void adc_init() { ADC_InitTypeDef adc_init_struct={0}; //ccd1 adc_init_struct.ADC_Adcx = ADC1; adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 adc_init_struct.ADC_BitMode = SE_8BIT; adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 使能就不行了 LPLD_ADC_Init(adc_init_struct); LPLD_ADC_Chn_Enable(ADC1, AD15); //ccd2 adc_init_struct.ADC_Adcx = ADC1; adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 adc_init_struct.ADC_BitMode = SE_8BIT; adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 使能就不行了 LPLD_ADC_Init(adc_init_struct); LPLD_ADC_Chn_Enable(ADC1, AD17); //ccd3 // adc_init_struct.ADC_Adcx = ADC0; // adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 // adc_init_struct.ADC_BitMode = SE_8BIT; // adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 // adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 // //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 使能就不行了 // LPLD_ADC_Init(adc_init_struct); // LPLD_ADC_Chn_Enable(ADC0, AD13); adc_init_struct.ADC_Adcx = ADC0; adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 adc_init_struct.ADC_BitMode = SE_8BIT; adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 使能就不行了 LPLD_ADC_Init(adc_init_struct); LPLD_ADC_Chn_Enable(ADC0, AD23); adc_init_struct.ADC_Adcx = ADC0; adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 adc_init_struct.ADC_BitMode = SE_8BIT; adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 使能就不行了 LPLD_ADC_Init(adc_init_struct); LPLD_ADC_Chn_Enable(ADC0, AD18); }
//-------------------------------------------------------------------------------------------- void ADC_Init(void) { adc_init_struct0.ADC_Adcx = ADC0; adc_init_struct0.ADC_DiffMode = ADC_SE; adc_init_struct0.ADC_BitMode = SE_12BIT; //单端12位精度 adc_init_struct0.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct0.ADC_HwAvgSel = HW_16AVG; //硬件平均 LPLD_ADC_Init(adc_init_struct0); LPLD_ADC_Chn_Enable(ADC0, AD15); //陀螺仪 ADC0 A7 X轴 LPLD_ADC_Chn_Enable(ADC0, AD8); //模拟加速度计 ADC0 A8 ZOUT LPLD_ADC_Chn_Enable(ADC0, AD11); //陀螺仪 ADC0 A8 Y轴 adc_init_struct1.ADC_Adcx = ADC1; adc_init_struct1.ADC_DiffMode = ADC_SE; adc_init_struct1.ADC_BitMode = SE_8BIT; //单端8位精度 adc_init_struct1.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct1.ADC_HwAvgSel = HW_32AVG; LPLD_ADC_Init(adc_init_struct1); LPLD_ADC_Chn_Enable(ADC1, AD14);// 白线 左电感 B10 LPLD_ADC_Chn_Enable(ADC1, AD15);// 蓝线 右电感 B11 }
void init_ADC() { adc0_init_struct.ADC_Adcx = ADC0; //选择ADC0 adc0_init_struct.ADC_BitMode = SE_12BIT; //配置转换精度 adc0_init_struct.ADC_CalEnable = TRUE; //使能初始化自动校准 adc0_init_struct.ADC_HwTrgCfg = HW_TRGA; //配置为硬件触发转换 adc0_init_struct.ADC_DmaEnable = TRUE; //使能DMA adc0_init_struct.ADC_SampleTimeCfg = SAMTIME_LONG; //初始化ADC0 LPLD_ADC_Init(adc0_init_struct); //使能ADC0的AD8输入引脚复用功能 LPLD_ADC_Chn_Enable(ADC0, AD8); //使能ADC0的AD8输入通道、禁用转换完成中断 LPLD_ADC_EnableConversion(ADC0, AD8, 0, FALSE); //使能PTB0通道 adc0_init_struct.ADC_Adcx = ADC1; LPLD_ADC_Init(adc0_init_struct); //使能ADC0的AD8输入引脚复用功能 LPLD_ADC_Chn_Enable(ADC0, AD8); //使能ADC0的AD8输入通道、禁用转换完成中断 LPLD_ADC_EnableConversion(ADC1, AD8, 0, FALSE); //使能PTB0通道 }
/* * 初始化ADC及其通道 * */ void adc_init(void) { //配置ADC采样参数 adc_init_struct.ADC_Adcx = ADC0; adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 adc_init_struct.ADC_BitMode = SE_12BIT; //单端12位精度 adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 //初始化ADC LPLD_ADC_Init(adc_init_struct); //为了保证复用功能不被占用,最好使能相应ADC通道 //RUSH开发板的电位器使用DAD1通道进行采集 //单端DAD1通道的引脚为(ADC0_DP1) LPLD_ADC_Chn_Enable(ADC0, DAD1); }
void adc_init(myadc *adc, uint32 PIT_PeriodUs) { pdb_init(adc->PDB_TriggerInputSourceSel, adc->ADC_Adcx); adc_init_struct.ADC_Adcx = adc->ADC_Adcx; adc_init_struct.ADC_DiffMode = ADC_SE; //单端采集 adc_init_struct.ADC_BitMode = SE_12BIT; //单端12位精度 adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT; //短采样时间 adc_init_struct.ADC_HwAvgSel = HW_4AVG; //4次硬件平均 adc_init_struct.ADC_PgaGain = PGA_1GAIN; //1倍增益 adc_init_struct.ADC_MuxSel = MUX_ADXXA; //A输入通道 adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验 adc_init_struct.ADC_HwTrgCfg = HW_TRGA; //禁用硬件触发转换 adc_init_struct.ADC_DmaEnable = FALSE; //禁用DMA adc_init_struct.ADC_Isr = adc->isr; //设置ADC中断函数 LPLD_ADC_Init(adc_init_struct); //初始化ADC0 LPLD_ADC_Chn_Enable(adc->ADC_Adcx, adc->chn); //使能ADC0的DAD1输入引脚复用功能 LPLD_ADC_EnableConversion(adc->ADC_Adcx, adc->chn, 0, TRUE); //使能ADC0的DAD1输入通道及其转换完成中断 LPLD_ADC_EnableIrq(adc_init_struct); //使能ADC0中断 pit_init(adc->PIT_Pitx, PIT_PeriodUs); }