我已经为Windows和OS X编写了串口访问代码,但是后者我还没有找到一种方法来打开DTR低端口。 (我试图避免重置我的Arduino。)这是我的C代码的最简单版本,它演示了这个问题:
const char *pathname = "/dev/tty.usbmodem411";
….
int main()
{
int fd;
int status;
printf(" STARTING SERIAL PORT PROGRAM \n");
fd = open(pathname, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd != -1) printf(" port successfully opened, fd = %d\n",fd) ;
else
{
printf(" could not open port\n");
return;
}
printf("closing port and quitting app\n");
if (fd !=-1) close(fd);
return 0;
}
我还没有发现任何其他open()标志有帮助。通过ioctl()打开端口后,我可以成功地将DTR设置为低,但由于Arduino在open()上重置,因此无效。
有没有人知道如何在open()期间保持DTR低?这可能是USB驱动程序的功能吗?