3

我已经为 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驱动程序的功能吗?

4

0 回答 0