cfsetispeed和cfsetospeed函数---波特率设置;cfgetispeed和cfgetospeed函数---获取波特率信息;tcflush函数
头文件:#include <termios.h>
函数原型:int cfsetispeed(struct termios *termptr, speed_t speed);
int cfsetospeed(struct termios *termptr, speed_t speed);
int cfgetispeed(struct termios *termptr, speed_t speed);
int 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); //设置终端参数
一般来说,输入输出的波特率应该是一致的。
/*******************************************************/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!