Job_SignsPads/STM32/Code/STM32F405/Application/Queue.h
2025-04-22 10:29:37 +08:00

46 lines
1.3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef enum
{
STATE_EMPTY, //空的
STATE_COMPLETE, //满状态
STATE_INCOMPLETE, //可以添加
STATE_CPOYING //正在复制数据
} QueueState;
//定义节点
typedef struct node_linnk//2*10+2+2+2=26
{
unsigned short int *f_data;//2*10
unsigned short int f_size; //2
unsigned short int max; //这一秒钟内最大值
unsigned short int min;
struct node_linnk *next;
} node, *q_node;
//定义队列(保存队首和队尾指针)
typedef struct queue_link
{
unsigned short int max_size;
unsigned short int currentSize;
QueueState state;
unsigned short int max;
unsigned short int min;
char link_flag;
char mem_way;
q_node front;
q_node rear;
} que, *q_que;
void InitQueue(q_que *q, int num, char c);
bool EmptyQueue(q_que q);
void InsertQueue(q_que q, unsigned short int *src, int size, unsigned short int *max_min);
void DeleteQueue(q_que q);
void Display_f(q_que q);
void copy_data_up_v(q_que q, unsigned short int* sdst,unsigned char* cdst, int index);
void copy_data_stage(q_que q, unsigned char *dst, int index);
void copy_data_down(q_que q, unsigned short int *dst, int index);
void copy_data_up(q_que q, unsigned short int *dst, int index);