串口配置流程

串口配置流程
1、保存原串口信息,使用tcgetattr()函数;
struct termios newtio, oldtio;
tcgetattr(fd, &oldtio);





2、激活选项有CLOCAL和CREAD,用于本地连接和接收使能;
newtio.c_cflag |= CLOCAL | CREAD;





3、设置波特率,使用函数cfsetispeed()和cfsetospeed();
cfsetispeed(&newtio, B115200);
cfsetospeed(&newtio, B115200);



4、设置数据位,需使用掩码设置。
newtio.c_cflag &= ~CSIZE;
newtio.c_cflag |= CS8





5、设置奇偶校验位,使用c_cflag和c_iflag。
奇校验:
newtio.c_cflag |= PARENB;
newtio.c_cflag |= PARODD;
newtio.c_iflag |= (INPCK | ISRIP);
偶校验:
newtio.c_iflag |= (INPCK | ISRIP);
newtio.c_cflag |= PARENB;
newtio.c_cflag &= ~PARODD;
无校验:
newtio.c_cflag &= ~PARENB;







6、设置停止位,通过激活c_cflag中的CSTOPB实现。若停止位为1,则清除CSTOPB,若停止位为2,则激活CSTOPB。
newtio.c_cflag &= ~CSTOPB;




7、设置最少字符和等待时间,对于接收字符和等待时间没有特别要求时,可设为0;
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 0;





8、处理要写入的引用对象
tcflush函数刷新输入缓存(终端驱动程序已接收到,但用户程序尚未读)或输出缓存(用户程序已经写,但尚未发送)
int tcflush(int fileds, int queue);
queue数是下列3个常数之一:
TCIFLUSH:刷新输入队列
TCOFLUSH:刷新输出队列
TCIOFLUSH:刷新输入输出队列



9、激活配置,在完成配置后,需激活配置使其生效。使用tcsetattr();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值