| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (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
Боюсь, что вы не сможете под винду работать с портами, т.к. это разрешено только из 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 |
| Просто мне легче это на асме когда всё в твоих руках Добавлено @ 14:51 подпись твою заметил :))))) долго смеялся :)))))))))))))))) |
| Автор: shedon 5.9.2004, 19:15 | ||
Так кто на асме запрещает апи функции вызывать ? |
| Автор: asmworm 6.9.2004, 16:51 |
| Я имел ввиду на уровне портов ввода-вывода, ну а это делается на асме. Просто а апи дофига своих прибамбасов привязаных к конкретной операционке(linux, win) |
| Автор: shedon 6.9.2004, 17:43 | ||
Почему, на си тоже можно работат напрямую с портами ввода ввывода, хотя это дело вкуса... |