本帖最后由 苏山人家 于 2018-3-25 22:45 编辑
不知道你想干啥,看上面像是排序,给你一个例子,也不用排序直接求和计算就好。
另外猜测问题是char溢出,你说每次获取都是1700-1900 可是value_buf类型是char
uint32_t fun(void)
{
uint32_t sum = 0;
uint32_t i = 0; uint32_t tmp = 0;
uint32_t max = 0;
uint32_t min = UINT32_MAX;
#define N 5
for(i=0; i < N;i ++)
{
tmp=ADC2_Get_AdcValue(5);
//delay()
if(tmp > max)max = tmp;
if(tmp < min)min = tmp;
sum += tmp;
}
sum = sum - max;
sum = sum - min;
return (sum / (N - 2));
}
|