串口不会在linux ubuntu中打开

时间:2014-02-25 12:48:45

标签: c linux ubuntu serial-port communication

我无法打开串口来启动linux ubuntu中的通信。我试过这个:

int OpenPort(void) {

int fd; 

fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);

if(fd == -1)
{
  printf("Failed to open port.\n");
}
else
{
    fcntl(fd, F_SETFL, 0);
    printf("Opened!\n");
}

return(fd);
}

int main()
{
  int x = OpenPort();
  printf("%i\n", x);

  exit(0);
}

我是linux的新手,在网上发现了这个代码,但它对我不起作用。

1 个答案:

答案 0 :(得分:1)

您需要以超级用户/ root身份运行才能访问Linux中的串行端口。尝试将二进制文件作为sudo运行。如果您可以验证这是问题,但您不希望root用户运行您的进程,则可以在代码中使用选项来获取root权限。这个答案可能对阅读How to programmatically gain root privileges?

很有用