void DMA_IRQHandler(void) { /*进行采样的叠加*/ if (ADC_count < 160) { ADC_ConvertedValue = ADC_ConvertedValue + ADC1->DR; ADC_count++; } else { ADC_Cmd(ADC1, DISABLE); if (DS_count_16 < 16) { Value[DS_count_16] = ADC_ConvertedValue; DS_count_16++; } /*进行双波长频分调制的数字解调*/ if (DS_count_16 == 16)//Down sampling 16 { DS_count_16 = 0; Slide0_ave=(-Value[0]+Value[1]-Value[2]+Value[3]-Value[4]+Value[5]-Value[6]+Value[7]-Value[8]+Value[9]-Value[10]+Value[11]-Value[12]+Value[13]-Value[14]+Value[15]); Slide1_ave=(-Value[0]-Value[1]+Value[2]+Value[3]-Value[4]-Value[5]+Value[6]+Value[7]-Value[8]-Value[9]+Value[10]+Value[11]-Value[12]-Value[13]+Value[14]+Value[15]); acdc_red[acdc_count] = Slide0_ave; acdc_ired[acdc_count] = Slide1_ave; acdc_count++; if(acdc_count > 299) { acdc_count = 0; } if(DS_count_32 < 4) { Signal_ds1[DS_count_32] = Slide0_ave; Signal_ds2[DS_count_32] = Slide1_ave; DS_count_32++; } if(DS_count_32 == 4)//Down sampling 32 { DS_count_32 = 0; DS_1 = -(Signal_ds1[0]+Signal_ds1[1]+Signal_ds1[2]+Signal_ds1[3])>>2; DS_2 = -(Signal_ds2[0]+Signal_ds2[1]+Signal_ds2[2]+Signal_ds2[3])>>2; DS_1_dac = DS_1; DS_2_dac = DS_2; } } } }