STM32F103ZET6 标准库 帮我写 判断6个数据是否与之前相同,不相同则将6个数分别付给一个二维数组
时间: 2024-02-28 15:57:19 浏览: 56
好的,下面是代码示例:
```c
#include "stm32f10x.h"
#define DATA_NUM 6 // 数据个数
#define ARRAY_ROWS 6 // 二维数组的行数
#define ARRAY_COLS 6 // 二维数组的列数
// 定义二维数组
uint16_t data_array[ARRAY_ROWS][ARRAY_COLS] = {0};
// 判断数据是否相同的函数
uint8_t is_data_same(uint16_t* data)
{
static uint16_t last_data[DATA_NUM] = {0}; // 上一次的数据
uint8_t is_same = 1; // 是否相同的标志位
for (uint8_t i = 0; i < DATA_NUM; i++)
{
if (last_data[i] != data[i])
{
is_same = 0; // 不相同
last_data[i] = data[i]; // 更新上一次的数据
}
}
return is_same;
}
int main(void)
{
uint16_t data[DATA_NUM] = {0}; // 存放当前数据
while (1)
{
// 获取6个数据
data[0] = ?; // 填入获取数据的方法
data[1] = ?;
data[2] = ?;
data[3] = ?;
data[4] = ?;
data[5] = ?;
// 判断数据是否相同
if (!is_data_same(data))
{
// 不相同,将6个数分别赋值给二维数组
for (uint8_t i = 0; i < DATA_NUM; i++)
{
data_array[i][0] = data[i];
}
}
}
}
```
这段代码中,我们首先定义了一个二维数组 `data_array`,用于存放不同的数据。接着,我们定义了一个函数 `is_data_same`,用于判断当前数据是否与上一次相同。如果数据不同,我们就将当前数据分别赋值给二维数组的第一列。
阅读全文