• 大小: 3KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签:

资源简介

今天才看到我之前的打印机驱动程序上传错了,今天把源代码上传上去,这个源代码是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;

评论

共有 条评论

相关资源