-
大小: 3KB文件類型: .c金幣: 1下載: 0 次發(fā)布日期: 2021-06-06
- 語言: 其他
- 標(biāo)簽:
資源簡介
今天才看到我之前的打印機(jī)驅(qū)動程序上傳錯了,今天把源代碼上傳上去,這個源代碼是Ubuntu10.04環(huán)境下是編譯通過的。可以直接驅(qū)動串口打印機(jī)的。當(dāng)然不同的打印機(jī)命令不同。根據(jù)需要改寫命令即可!
代碼片段和文件信息
#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;/*奇校驗(yàn)*、
newtio.c_iflag?|=?(INPCK?|?ISTRIP);
break;
case?‘E‘:?
newtio.c_iflag?|=?(INPCK?|?ISTRIP);
newtio.c_cflag?|=?PARENB;/*偶校驗(yàn)*、
newtio.c_cflag?&=?~PARODD;
break;
case?‘N‘:??
newtio.c_cflag?&=?~PARENB;/*無校驗(yàn)*/
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;
評論
共有 條評論