os_queue.c
1> 消息队列结构体
// 消息队列结构体
#define MsgQ_SIZE 4
typedef struct // 定义一个队列结构体
{
ushort16_t * Start; // 指向队列起始地址
ushort16_t * End; // 指向队列结束地址
ushort16_t * In; // 指向插入一条消息的地址
ushort16_t * Out; // 指向被取出的消息地址
uchar8_t Size; // 队列数组长度
uchar8_t Entries; // 已存放消息条数
ushort16_t Buffer[MsgQ_SIZE]; // 队列存储数组
} QUEUE_TypeDef;
如何实现循环队列
2> 消息队列初始化
2.1> 实例化
// 消息队列实例化
static QUEUE_TypeDef idata MsgQ;
void QUEUE_Init(void)
{
MsgQ.Start = MsgQ.Buffer; // 队列头
MsgQ.End = MsgQ.Buffer + MsgQ_SIZE - 1; // 队列尾
MsgQ.In =