rt_thread 例程 uart_sample.c 中,读串口设备时偏移量pos要设置为-1而不是0?
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是为了明确表示这是个无效参数,方便代码的阅读理解