2

我有一个 AVR,我已将其设置为在插入计算机时充当 USB 串行设备。我想通过串口向它发送命令。

但是,我无法获得发送和接收回复的命令。我一次发送 16 位数据并期望收到 16 位回复,但相反,我的程序挂起等待回复。我怀疑它与串行和 USB 驱动程序上的输出缓冲有关。

我尝试寻找控制串行端口的方法,但很难确定我需要哪些选项,因为许多选项仅适用于真正的串行端口(不是 USB 串行端口)。

目前,我正在使用此代码打开设备文件

int fd = open(device, O_RDWR | O_NDELAY | O_SYNC | O_NOCTTY);
struct termios tio = {0};
cfmakeraw(&tio);
tio.c_cc[VMIN] = 2;
tcsetattr(fd,TCSANOW,&tio);

谁能帮我选择适合我需要的选项?我只需要没有(或很少)输出缓冲的同步直接访问。

4

0 回答 0