设计一个环形FIFO缓冲区,用于存储原始数据。环形FIFO缓冲区最大有10个节点,每个节点有200个原始数据,即200个unsigned int类型的数据。其中,包括写FIFO函数,读FIFO函数,删除某节点函数,删除整个FIFO函数等。
#define FIFO_NODE_NUM 10
#define FIFO_NODE_DATA_NUM 200
#define FIFO_DATA_TYPE unsigned int
typedef struct
{
FIFO_DATA_TYPE data[FIFO_NODE_DATA_NUM];
}FIFO_NODE;
typedef struct
{
FIFO_NODE fifo_node[FIFO_NODE_NUM];
unsigned int write_index;
unsigned int read_index;
}FIFO;
FIFO raw_data_fifo;
/**
* @brief 初始化FIFO
*/
void raw_data_fifo_init(void)
{
raw_data_fifo.write_index = 0;
raw_data_fifo.read_index = 0;
}
/**
* @brief 向FIFO中写入原始数据
* @param data 指向FIFO_DATA_TYPE类型的指针,用于存储要写入的数据
* @param data_num 要写入的数据数量
*/
void raw_data_fifo_write(FIFO_DATA_TYPE *data, unsigned int data_num)
{
unsigned int i;
for(i = 0; i < data_num; i++)
{
raw_data_fifo.fifo_node[raw_data_fifo.write_in