AD采样求平均STM32实现

 1 iADC_read(0, &u16NTC_1_Sample_Val_ARR[10]);
 2 
 3     if(0 == ui8FirstSampleFlag)
 4     {
 5         for(i=0; i<10; i++)
 6         {
 7             u16NTC_1_Sample_Val_ARR[i] = u16NTC_1_Sample_Val_ARR[10];
 8         }
 9         ui8FirstSampleFlag = 1;
10     }
11     
12     u16NTC_1_Sample_Val_ARR[10] = (uint16_t)
13 ((0.1f) * ((float)(u16NTC_1_Sample_Val_ARR[0] + u16NTC_1_Sample_Val_ARR[1]
14                 + u16NTC_1_Sample_Val_ARR[2] + u16NTC_1_Sample_Val_ARR[3]
15                 + u16NTC_1_Sample_Val_ARR[4] + u16NTC_1_Sample_Val_ARR[5]
16                 + u16NTC_1_Sample_Val_ARR[6] + u16NTC_1_Sample_Val_ARR[7]
17                 + u16NTC_1_Sample_Val_ARR[8] + u16NTC_1_Sample_Val_ARR[9])));
18 
19     
20     for(i=1; i<=10; i++)
21     {
22         u16NTC_1_Sample_Val_ARR[i-1] = u16NTC_1_Sample_Val_ARR[i];
23     }
1 uint8_t iADC_read( uint8_t ucAdcChn, uint16_t *u16AdcData)
2 {
3     *u16AdcData = (uint16_t)ADC_ConvertedValue[ucAdcChn] ;
4     return (1);
5 }
1 __IO uint16_t ADC_ConvertedValue[ADC_DMA_BUFFER_SIZE]= {0};
原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/10633834.html