在Linux串口编程的一些问题解决(5)

2019-04-15 20:03

} }

注意tcsetattr函数中使用的标志:

TCSANOW:立即执行而不等待数据发送或者接受完成。

TCSADRAIN:等待所有数据传递完成后执行。

TCSAFLUSH:Flush input and output buffers and make the change4.设置数据位、停止位和校验位以下是几个数据位、停止位和校验位的设置方法:(以下均为1位停止位)

8位数据位、无校验位:

Opt.c_cflag &= ~PARENB;

Opt.c_cflag &= ~CSTOPB;

Opt.c_cflag &= ~CSIZE;

Opt.c_cflag |= CS8;

7位数据位、奇校验:

Opt.c_cflag |= PARENB;

Opt.c_cflag |= PARODD;

Opt.c_cflag &= ~CSTOPB;

Opt.c_cflag &= ~CSIZE;

Opt.c_cflag |= CS7;

7位数据位、偶校验:

Opt.c_cflag |= PARENB;

Opt.c_cflag &= ~PARODD;

Opt.c_cflag &= ~CSTOPB;

Opt.c_cflag &= ~CSIZE;

Opt.c_cflag |= CS7;

7位数据位、Space校验:

Opt.c_cflag &= ~PARENB;

Opt.c_cflag &= ~CSTOPB;

Opt.c_cflag &= ~CSIZE;

Opt.c_cflag |= CS7;

代码如下:int SetParity(int fd, int databits, int stopbits, int parity) {

struct termios Opt;

if(tcgetattr(fd, &Opt) != 0)

{

perror(\

return FALSE; }

Opt.c_cflag |= (CLOCAL | CREAD); //一般必设置的标志switch(databits) //设置数据位数 { case 7:

Opt.c_cflag &= ~CSIZE;

Opt.c_cflag |= CS7; break;

case 8:

Opt.c_cflag &= ~CSIZE;

Opt.c_cflag |= CS8; berak; default:

fprintf(stderr, \

return FALSE;

}switch(parity) //设置校验位 { case 'n': case 'N':


在Linux串口编程的一些问题解决(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青州项目可行性报告1650136325 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: