Требуется просто прочесть данные, которые сыплются на com порт, я делаю так:
if (ioperm(BASEPORT, 7, 1)) {perror("ioperm"); exit(1);}
outb(43,0x3fb);//инициализируем адаптер
outb(2,0x3fc);//выставляем rts
printf(": %d\n", inb(0x3f8));//выводим первый байт данных
usleep(1000);
outb(2,0x3fc);//опять выставляем rts
printf(": %d\n", inb(0x3f8));//выводим второй байт данных
if (ioperm(BASEPORT, 7, 0)) {perror("ioperm"); exit(1);}
exit(0);
}
Почему абсолютно всегда читаются одни и теже данные?
либо читаем с com-a таким образом:
#!/usr/bin/perl
open (fh,"< /dev/port") or die "!!!";
open (fh1,"> port") or die "!!!!";
while (<fh>)
{
print "$_";print fh1 $_;
}
close fh;
close fh1;
Опять читаются не правильные данные
(если же подключить com к 2000 с помощью hyperterminal - то на него сыплятся правильные данные)
Подскажите, пжста, как считывают данные с com-a ???
|