我目前正在 Arch Linux Arm 中使用 I2C,但不太确定如何计算写入和读取之间所需的绝对最小延迟。如果我没有这种延迟,阅读自然不会通过。我刚刚usleep(1000)
在两个命令之间应用了它,它有效,但它只是凭经验完成的,必须优化到实际值(不知何故)。但是如何?
write_and_read
这是我正在使用的函数的代码示例:
int write_and_read(int handler, char *buffer, const int bytesToWrite, const int bytesToRead) {
write(handler, buffer, bytesToWrite);
usleep(1000);
int r = read(handler, buffer, bytesToRead);
if(r != bytesToRead) {
return -1;
}
return 0;
}