我有一个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);
任何人都可以帮我选择合适的选项吗?我只需要同步,直接访问,没有(或很少)输出缓冲。