在STM32系统中,编写函数(滤波函数),利用for循环语句求数组arr[12]中采样值的平均值,计算结果保存在 sum中,其中采样值为16位。
时间: 2024-09-15 13:05:54 浏览: 37
在STM32系统中,你可以创建一个函数来计算16位采样值数组arr[12]的平均值,通常这样的滤波函数会遍历整个数组并累加每个元素,然后除以数组长度得到平均值。下面是一个基本的示例,展示了如何使用for循环来实现这个功能:
```c
#include <stdio.h>
// 定义16位整型变量类型
typedef uint16_t SampleValue;
// 滤波函数,计算平均值
SampleValue calculateAverage(SampleValue arr[], int length) {
// 初始化总和为0
SampleValue sum = 0;
// 使用for循环遍历数组
for (int i = 0; i < length; i++) {
// 将当前采样值添加到sum中
sum += arr[i];
}
// 计算平均值并返回
return sum / length;
}
// 主函数示例
int main(void) {
SampleValue arr[12]; // 假设已填充好16位采样值
const int ARRAY_LENGTH = sizeof(arr) / sizeof(arr[0]);
// 调用滤波函数并打印结果
float average = (float)calculateAverage(arr, ARRAY_LENGTH);
printf("Array average is: %d\n", average); // 注意转换浮点数为int输出
return 0;
}
```
阅读全文