1.什么是消息邮箱
在多任务操作系统中,常常需要在任务与任务之间通过传递一个数据(这种数据叫做“消息”)的方式来进行通信。为了达到这个目的,可以在内存中创建一个存储空间作为该数据的缓冲区。如果把这个缓冲区称之为消息缓冲区,这样在任务间传递数据(消息)的最简单办法就是传递消息缓冲区的指针。我们把用来传递消息缓冲区指针的数据结构叫做邮箱(消息邮箱)。
2.消息邮箱的操作
①声明一个邮箱指针
OS_EVENT * box_key; //邮箱事件块指针
②创建消息邮箱
box_key=OSMboxCreate((void*)0); 这里参数为(void*)0 表示创建一个空的消息邮箱,指向NULL;
③发送消息
OSMboxPost(box_key,(void*)key); 其中key值为要发送的数据,box_key则为消息邮箱指针
④请求(接收)消息
key=(u32)OSMboxPend(box_key,0,&err); 其中key值为接收到的消息邮箱数据,box_key为消息邮箱指针,0表示无限等待