Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > COM, LPT


Автор: asmworm 3.9.2004, 20:24
Всем привет

Люди подкиньте доки по портам COM;LPT : разводка и т.п.
И ещё работа с этими портами под винду(желательно низкоуровневая, через адреса портов)

Автор: shedon 4.9.2004, 11:27
Это инфа по портам http://shedon.pisem.net/RS-232c.rar
Цитата(asmworm @ 3.9.2004, 17:24)
И ещё работа с этими портами под винду(желательно низкоуровневая, через адреса портов)

Боюсь, что вы не сможете под винду работать с портами, т.к. это разрешено только из 0 кольца защиты, а программы работают в 3. Можно конечно написать драйвер и работать через него, или испоьзовать драйвер WinIO, но надо ли вам это ??? С ком портами в винде работают также как и с файлами, на форуме эта тема уже частенько поднималась, вот тут можно посмотрет о работе с портами на С++
http://forum.vingrad.ru/index.php?act=ST&f=31&t=4043
http://forum.vingrad.ru/index.php?act=ST&f=1&t=16085&hl=writefile

Автор: Crait 4.9.2004, 13:17
Win9x позволяет работать со многими портами, в том числе с LPT, напрямую и в User mode.

Автор: -= Александр =- 4.9.2004, 16:27
Где-то в сети можно контрол нарыть, который это все напрямую (через адреса) делает.

Автор: shedon 4.9.2004, 17:04
Цитата
Где-то в сети можно контрол нарыть, который это все напрямую (через адреса) делает.

Если под WinNT/2k/XP, то этот контрол либо не работает, либо также работает через драйвер

Автор: asmworm 5.9.2004, 07:36
А LPT? А как насчёт линукса? Под винду пытался когдато дрова писать но в DDK сильно много введения в эту тему.

Автор: shedon 5.9.2004, 12:46
А за чем тебе, работать на уровне портов, почему нельзя работать по нормальноиу, как с обычным файлом. В линуксе с портами работают тож как с файлами
Вот аналоги:
вместо CreateFile("\\.\\COM1",...
используем open()
Настройки
tcgetattr(), tcsetattr()
ioctl(,TIOCMGET) - прочитать флаги управления модемом
ioctl(,TIOCMSET) - установить флаги управления модемом
ioctl(,TIOCMBIS) - добавить --"--
ioctl(,TIOCMBIC) - снять --"--

Hапример, поднять DTR:

int mst = TIOCM_BIS;
rc = ioctl( comport_fd, TIOCMBIS, &mst );
if( rc < 0 ) perror( "ioctl(,TIOCMBIS)" );

write() - запись в порт
read() - чтение из порта

close() - закрытие порта

Всё это относится и к LPT

Автор: asmworm 5.9.2004, 14:48
Просто мне легче это на асме когда всё в твоих руках smile.gif А за док большое спасибо, это то что я искал. вот только там последних двух картинок нету
Добавлено @ 14:51
подпись твою заметил :))))) долго смеялся :))))))))))))))))

Автор: shedon 5.9.2004, 19:15
Цитата(asmworm @ 5.9.2004, 11:48)
Просто мне легче это на асме когда всё в твоих руках

Так кто на асме запрещает апи функции вызывать ?

Автор: asmworm 6.9.2004, 16:51
Я имел ввиду на уровне портов ввода-вывода, ну а это делается на асме. Просто а апи дофига своих прибамбасов привязаных к конкретной операционке(linux, win)

Автор: shedon 6.9.2004, 17:43
Цитата(asmworm @ 6.9.2004, 13:51)
на уровне портов ввода-вывода, ну а это делается на асме

Почему, на си тоже можно работат напрямую с портами ввода ввывода, хотя это дело вкуса...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)