首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于并口的读写操作有关问题,求解

2013-06-26 
关于并口的读写操作问题,求解。我现在有两台电脑A和B,打印机一台。在电脑(A)给打印机发送数据时,我需要电脑(

关于并口的读写操作问题,求解。
我现在有两台电脑A和B,打印机一台。在电脑(A)给打印机发送数据时,我需要电脑(B)读取(A)发送的数据,我有并口直通线(1-1,2-2.。。25-25),和一般的并口线(2-15,3-13。。。。。),程序如下:
#include <stdio.h>
#include <sys/time.h>  // select()
#include <fcntl.h>   // open()
#include <unistd.h>    // read() write() close()
#include <signal.h>  // signal()
#include <termios.h>
#include <term.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <stdlib.h>     //exit()
#include <linux/ppdev.h>
#include <linux/parport.h>

int main(void)
{
int ret_w;
int mode; /* We'll need this later. */
unsigned char status, control, data;
unsigned char outbuf[1]={0x55};
unsigned char mask = (PARPORT_STATUS_ERROR | PARPORT_STATUS_BUSY);
unsigned char val = (PARPORT_STATUS_ERROR | PARPORT_STATUS_BUSY);
int irqc;
int busy ;//= nAck | nFault;
int acking; // = nFault;
int ready; // = Busy | nAck | nFault;
char ch;
int fd, pp_cntl;
struct timespec ts;

if( (fd = open ("/dev/parport0", O_RDWR))<0)
return 1;
if (fd == -1) {
perror ("open");
return 1;
}
printf ("fd = %d\t", fd);
while(1)
{
if (ioctl (fd, PPCLAIM)) {
perror ("PPCLAIM");
close (fd);
return 1;
}

mode = PARPORT_MODE_ECP;

if (ioctl (fd, PPSETMODE, &mode)) {
perror ("PPNEGOT");
close (fd);
return 1;
}
ioctl (fd, PPRSTATUS, &status);
printf("status = %d\t",status); 
fflush(NULL);
sleep(3);

ready = 0xFa;
ioctl(fd, PPWCONTROL, &ready);
ts.tv_sec = 0;
ts.tv_nsec = 500;
nanosleep(&ts, NULL);
ioctl (fd, PPRSTATUS, &status);

ts.tv_nsec = 500;
ioctl(fd, PPRCONTROL, &pp_cntl);
pp_cntl |= 0X2;
ioctl(fd, PPWCONTROL, &pp_cntl);
nanosleep(&ts, NULL);
ioctl (fd, PPRSTATUS, &status);
printf("status = %d\t",status); 

while(1)
{
ioctl(fd, PPRDATA, &data); //read
printf("data = %x\n",data);

ts.tv_nsec = 500;
ioctl(fd, PPRCONTROL, &pp_cntl);
pp_cntl &= 0Xfd;
ioctl(fd, PPWCONTROL, &pp_cntl);
nanosleep(&ts, NULL);
ioctl (fd, PPRSTATUS, &status);
printf("status = %d\t",status); 
ioctl (fd, PPRELEASE);  

}
close (fd);
}
运行后,能读到一次数据,但是数据不正确,而且连打印机打印的也错误了。 这是c语言吗
[解决办法]
我是跟着小北鼻来到这里的~
可能是由于这个版块活动的人比较少吧~
帮顶~
C语言完全忘了呢~
加油~
------解决方案--------------------


这是c语言吗
这不是C语言吗?关于并口的读写操作有关问题,求解

关于并口的读写操作有关问题,求解

 其实他早就知道了,就是调戏你。
[解决办法]
这是c语言吗
这不是C语言吗?关于并口的读写操作有关问题,求解

关于并口的读写操作有关问题,求解

 其实他早就知道了,就是调戏你。关于并口的读写操作有关问题,求解  这个问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
















































我不会哦  关于并口的读写操作有关问题,求解
[解决办法]
对不起 我学java的  不过帮顶了

热点排行