资源简介
今天才看到我之前的打印机驱动程序上传错了,今天把源代码上传上去,这个源代码是Ubuntu10.04环境下是编译通过的。可以直接驱动串口打印机的。当然不同的打印机命令不同。根据需要改写命令即可!
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
int set_opt(int fdint nSpeed int nBits char nEvent int nStop)
{
struct termios newtiooldtio;
if ( tcgetattr( fd&oldtio) != 0) {
perror(“SetupSerial 1“);
return -1;
}
bzero( &newtio sizeof( newtio ) );
newtio.c_cflag |= CLOCAL | CREAD;
newtio.c_cflag &= ~CSIZE;
switch( nBits )
{
case 7:
newtio.c_cflag |= CS7;
break;
case 8:
newtio.c_cflag |= CS8;
break;
}
switch( nEvent )
{
case ‘O‘:
newtio.c_cflag |= PARENB;
newtio.c_cflag |= PARODD;/*奇校验*、
newtio.c_iflag |= (INPCK | ISTRIP);
break;
case ‘E‘:
newtio.c_iflag |= (INPCK | ISTRIP);
newtio.c_cflag |= PARENB;/*偶校验*、
newtio.c_cflag &= ~PARODD;
break;
case ‘N‘:
newtio.c_cflag &= ~PARENB;/*无校验*/
break;
}
switch( nSpeed )
{
case 2400:
cfsetispeed(&newtio B2400);
cfsetospeed(&newtio B2400);
break;
case 4800:
cfsetispeed(&newtio B4800);
cfsetospeed(&newtio B4800);
break;
case 9600:
cfsetispeed(&newtio B9600);
cfsetospeed(&newtio B9600);
break;
case 115200:
cfsetispeed(&newtio B115200);
cfsetospeed(&newtio B115200);
break;
default:
cfsetispeed(&newtio B9600);
cfsetospeed(&newtio B9600);
break;
}
if( nStop == 1 )
newtio.c_cflag &= ~CSTOPB;
else if ( nStop == 2 )
newtio.c_cflag |= CSTOPB;
newtio.c_cc[VTIME] = 0;
- 上一篇:现代通信网络中的随机过程_第二章_排队论基础
- 下一篇:个人博客整站静态页面
评论
共有 条评论