Linux 下串口USB等设备通信编程入门2

来源:互联网 发布:ssr软件 编辑:程序博客网 时间:2024/06/10 00:33

1.获取终端设备的波特率属性等

       对于波特率的设置通常使用cfsetospeed和cfsetispeed函数来完成。获取波特率信息是通过cfgetispeed和cfgetospeed函数来完成的。

  cfsetospeed函数.头文件:       #include <termios.h>

 

  函数原型:

  int cfsetospeed(struct termios *termptr, speed_t speed);

  参数:

  struct termios *termptr - 指向termios结构的指针

  speed_t speed - 需要设置的输出波特率

  返回值:

  如果成功返回0,否则返回-1

  cfsetispeed函数


  函数原型:

  int cfsetispeed(struct termios *termptr, speed_t speed);

  参数:

  struct termios *termptr - 指向termios结构的指针

  speed_t speed - 需要设置的输入波特率

  返回值:

  如果成功返回0,否则返回-1

  cfgetospeed函数


  函数原型:

  speed_t cfgetospeed(const struct termios *termptr);

  参数:

  const struct termios - 指向termios结构的指针

  返回值:

  返回输出波特率

  cfgetispeed函数


  函数原型:

  speed_t cfgetispeed(const struct termios *termptr);

  参数:

  const struct termios *termptr - 指向termios结构的指针

  返回值:

  返回输入波特率

  波特率常量:

  CBAUD 掩码

  B0  0波特

  B50  50波特

  B75  75波特

  B110 100波特

  B134 134波特

  B150 150波特

  B200 200波特

  B300 300波特

  B600 600波特

  B1200 1200波特

  B1800 1800波特

  B2400 2400波特

  B9600 9600波特

  B19200 19200波特

  B38400 38400波特

  B57600 57600波特

  B115200 115200波特

2.串行数据格式

RS-232属于“异步传输”,在传送数据时,并不需要另外使用一条传输线来传送同步信号,不过必须在每一组数据的前后都加上同步信号,把同步信号与数据混和之后,使用同一条传输线来传输。从低位到高位的一帧数据格式为:
---------------------------------------------------------------------------------------
起始位(Start)+数据位(Data)+奇偶校验位(Parity)+停止位(Stop)
----------------------------------------------------------------------------------------
其中起始位固定为一个比特,停止位则可以是1、1.5或者是2比特(传送与接受一致),数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验位可以使用数据中的比特。

0 0