请教下 rt_device_read()函数的问题

发布于 2020-06-30 18:19:08
rt_size_t rt_device_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size
);
描述:pos 读取数据偏移量,此参数串口设备未使用
但在例子中:while (1)
{
/* 从串口读取一个字节的数据, 没有读取到则等待接收信号量*/
while (rt_device_read(serial, -1, &ch, 1) != 1)
{
/* 阻塞等待接收信号量, 等到信号量后再次读取数据*/
rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
}
/* 读取到的数据通过串口错位输出*/
ch = ch + 1;
rt_device_write(serial, 0, &ch, 1);

问题:pos此参数串口设备未使用 ,但在例子中,为啥为-1?,不懂,新手 ,请教!

查看更多

关注者
0
被浏览
122
3 个回答
aozima
aozima 2020-06-30
    本帖最后由 aozima 于 2020-6-30 18:51 编辑


既然末使用,那你随便填什么值都无所谓。
但不建议写成正值,不然容易误解成从第多少个字节开始读,可以写0。
对于有些设备,-1表示全部数据,可能是这么来的。


OCZY_7296
OCZY_7296 2020-06-30
谢谢!,在网上查了半天也没查到答案啊,这个数据要是不填呢,或 RT_NULL呢。
zhangjun
zhangjun 2020-07-01
OCZY_7296 发表于 2020-6-30 20:45
谢谢!,在网上查了半天也没查到答案啊,这个数据要是不填呢,或 RT_NULL呢。 ...


这个得看具体底层驱动或者框架怎么处理的,驱动或者框架能看到上层应用的pos参数的,如果驱动或者框架没有使用这个参数那可以随便填都可以

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友