linux中串口通信的波特率

时间:2014-04-30 05:39:40

标签: c linux serial-port

默认情况下,串行通信期间的波特率是多少。那就是如果写一个程序,我没有提到任何波特率,那么将考虑什么波特率?

2 个答案:

答案 0 :(得分:3)

如果在POSIX系统上:

  1. 使用open()打开端口。
  2. 将文件描述符从1.传递到tcgetattr()以初始化struct termios
  3. 将对struct termios的引用从2.传递到cfgetispeed() / cfgetospeed()以获取端口的当前入站/出站波特率。
  4. 示例:

    #include <termios.h>
    #include <unistd.h>
    
    [...]
    
    struct termios t = {0};
    speed_t baudrate_in = 0;
    speed_t baudrate_out = 0;
    int fd = open("/dev/ttyS0", O_RDWR);
    if (-1 == fd)
    {
      perror("open() failed");
      exit(1);
    }
    
    if (-1 == tcgetattr(fd, &t))
    {
      perror("tcgetattr() failed");
      exit(1);
    }
    
    baudrate_in = cfgetispeed(&t);    
    baudrate_out = cfgetospeed(&t);
    

答案 1 :(得分:1)

您可以使用setserial查找 http://linux.die.net/man/8/setserial