如何在linux上使用cfsetispeed和tcsetattr命令将波特率的端口配置为9600?

时间:2013-03-03 20:35:40

标签: linux baud-rate

我现在正在使用以下代码,我想知道它出错了。

struct termios options;
int fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
fcntl(fd, F_SETFL, 0);
tcgetattr(fd, &options);
cfsetispeed(&options, B9600);
tcsetattr(fd, TCSANOW, &options);

1 个答案:

答案 0 :(得分:0)

你可以尝试下面的代码,看看它是否有帮助?

int open_port(void)
{
    int fd;

fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
    perror("open_port: Unable to open /dev/ttyS0 - ");
}
else
    fcntl(fd, F_SETFL, 0);

struct termios options;

tcgetattr(fd, &options);

cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);

tcsetattr(fd, TCSANOW, &options);

return (fd);
}