os_mail_recv

所属模块:通信机制 | 类型:邮箱读取函数

函数简介

os_mail_recv 用于读取指定邮箱中的数据, 支持私有邮箱、公共邮箱以及扩展16位邮箱。

该函数为非阻塞读取接口, 若邮箱为空则直接返回当前值(通常为0)。

函数原型

int os_mail_recv(u8 id);

参数说明

参数 说明
id 邮箱ID(支持私有 / 公共 / 扩展邮箱)

返回值

返回邮箱中的数据,若ID非法返回 -1。

源码实现

int os_mail_recv(u8 id) { if(id < OS_INFORMATION_PRIVATE) { return OS_INFORMATION[id]; } id -= OS_INFORMATION_PRIVATE; if(id < OS_INFORMATION_PUBLIC) { return OS_INFORMATION_COMMON[id]; } id -= OS_INFORMATION_PUBLIC; if(id < OS_INFORMATION_PUBLIC2) { return OS_INFORMATION_COMMON2[id]; } return -1; }

使用示例

void task1() { int data; while(1) { data = os_mail_recv(0); if(data != 0) { // 处理数据 os_mail_clear(0); } } }

注意事项

本函数为非阻塞接口,如需阻塞等待请使用 os_mail_wait。

相关推荐