头文件:#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); //设置终端参数
一般来说,输入输出的波特率应该是一致的。
/*******************************************************/