本系统采取了将串口的所有操作做成一个类,类名为MySerial,它包含了3个函数,分别为:
1).static int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop);
该函数实现了设置串口的一些参数,fd为用户打开的文件标识符,nSpeed为波特率,nBits为数据位,nEvent为奇偶效验,nStop为停止位。失败返回0。
把三个函数都设置成为静态函数的原因是它们可以和类无关,可以单队呕调用或者设置,也可以使用类来调用它们。
其中设置串口参数的关键是在于串口配置的数据结构:
struct termio
{
unsigned short c_iflag; /* 输入模式标志 */论文网http://www.youerw.com/
unsigned short c_oflag; /* 输出模式标志 */
unsigned short c_cflag; /* 控制模式标志*/
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
设置串口的过程如下:
(1).串口配置使用tcgetattr(fd,&oldtio)函数
struct termios newtio,oldtio;
tcgetattr( fd,&oldtio );本文来自优.文~论-文.网原文请找腾讯324.9114
(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。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>