os_mail_recv
所属模块:通信机制 | 类型:邮箱读取函数
函数简介
os_mail_recv 用于读取指定邮箱中的数据,
支持私有邮箱、公共邮箱以及扩展16位邮箱。
该函数为非阻塞读取接口,
若邮箱为空则直接返回当前值(通常为0)。
函数原型
int os_mail_recv(u8 id);
参数说明
| 参数 |
说明 |
| id |
邮箱ID(支持私有 / 公共 / 扩展邮箱) |
源码实现
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。