头文件:#include <termios.h>

函数原型:

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

说明:对于波特率的设置通常使用cfsetispeed和cfsetospeed函数来完成。

cfgetispeed和cfgetospeed函数来完成的。

参数:struct termios *termptr:-----指向termios结构的指针;

speed_t speed:---------------需要设置【返回】的输出/输入波特率;

返回值:成功---0;否则---1

 

波特率设置

常用的波特率常数如下,波特率的设置定义包含在头文件【termios.h】里:

B0-------à0                     B1800-------à1800
B50-----à50               B2400------à2400
B75-----à75               B4800------à4800
B110----à110              B9600------à9600
B134----à134.5           B19200-----à19200
B200----à200              B38400------à38400
B300----à300              B57600------à57600
B600----à600              B76800------à76800
B1200---à1200            B115200-----à115200

tcflush函数

头文件:#include <termios.h>

函数原型:int tcflush(int fd, int queue_selector);

说明:清空终端未完成的输入/输出请求及数据

参数:fd:---------------终端I/O打开的句柄

queue_selector:---控制tcflush的操作,取值:

    TCIFLUSH---------清除征收到的数据,且不会读取出来;

    TCOFLUSH---------清除正写入的数据,且不会发送至终端;

    TCIOFLUSH--------清除所有正在发生的I/O数据

返回值:成功---0;否则---1,并且errno设置值来指示错误

 

范例:

/***********************修改波特率******************************/

#include <termios.h>
struct termios opt;
int fd=open("/dev/ttyS1",o_RDWR | O_NOCTTY); //打开串口设备
tecgetattr(fd,&opt);                                //获取与终端相关的参数
cfsetispeed(&opt,B9600);            //指定输入波特率,9600bps
cfsetospeed(&opt,B9600);             //指定输出波特率,9600bps
tcflush(fd,TCIOFLUSH);               //清除所有正在发生的I/O数据
tcsetattr(fd,TCANOW,&opt);          //设置终端参数

一般来说,输入输出的波特率应该是一致的。

/*******************************************************/