Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как работать с COM портом

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Как работать с COM портом
Имя
Сообщение << Старые топики   Новые топики >>
Как работать с COM портом - 2009-07-30 11:47:23.890000   
jogick

Сообщений: 244
Оценки: 0
Присоединился: 2007-09-15 09:24:58.160000
Подскажите нчинающему (только начал уичть С) как работать с COM портом.
Нужно срочно написать программу которая будет гнать некоторые данные в порт. Прорграмма не нужна графическая, даже лучше чтобы консольная, но нужно два экземпляра, один под WIN другой под *nix. Нужно открыть порт выдать в него данные полученны вывести на экран, при этом при открытии нужно установить нужную скорость.
Короче как работать с COM'ом?
Post #: 1
RE: Как работать с COM портом - 2009-07-30 12:50:37.406666   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
Здесь очень неплохо расписано как реализовать сопряжение ПК с внешними устройствами посредством разных портов. Кажется только под винды. Под Никсы думаю сам найдешь. Там немного проще.
Post #: 2
RE: Как работать с COM портом - 2009-07-31 07:09:42.543333   
jogick

Сообщений: 244
Оценки: 0
Присоединился: 2007-09-15 09:24:58.160000
Спасибо!
Подскжите как организовать рботу программы так что бы она выдавала в порт данные до тех пор пока я не нажму определённую кнопку наклаве? Те способы ввода данных что я знаю останавливают программу до окончания ввод с клавы.
Post #: 3
RE: Как работать с COM портом - 2009-07-31 08:02:04.440000   
[DD]

Сообщений: 71
Оценки: 0
Присоединился: 2007-10-23 11:36:59.313333
если нажата нужная клавиша то отправить и закрыть… попробуй так…
Post #: 4
RE: Как работать с COM портом - 2009-07-31 11:49:37.010000   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
По той ссылке есть пример программирования для ЛПТ. Там рассмотрен подобный пример. Кажется там все сделано через getc().
Post #: 5
RE: Как работать с COM портом - 2009-08-06 09:26:38.466666   
jogick

Сообщений: 244
Оценки: 0
Присоединился: 2007-09-15 09:24:58.160000
Блин, который день изучаю указанный сайт, никак не найду того что мне нужно.
Может кто-нибудь привести пример программы с использованием этого getc(), сам не пойму как его использовать. ">
Post #: 6
RE: Как работать с COM портом - 2009-08-06 13:17:26.206666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
http://lmgtfy.com/?q=getc

Только к ком порту это никакого отношения не имеет.
Post #: 7
RE: Как работать с COM портом - 2009-08-06 14:33:21.793333   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47

quote:

ORIGINAL: jogick

Блин, который день изучаю указанный сайт, никак не найду того что мне нужно.
Может кто-нибудь привести пример программы с использованием этого getc(), сам не пойму как его использовать. ">


Эм. Не на том сайте надо было искать а в C\C++ Reference.
getc() принимает символ с клавиатуры.
потом ты можешь его сравнить с нужным и в случае совпадения\несовпадения выполнить нужные действия. А на сайт я указал ибо там подобный алгоритм применялся уже ( и я подразумевал что ты знаешь элементарные функции C).
Post #: 8
RE: Как работать с COM портом - 2009-08-06 16:08:28.423333   
jogick

Сообщений: 244
Оценки: 0
Присоединился: 2007-09-15 09:24:58.160000
Там применяется не getc(), а getch() (на сколько я смог рассмотреть, а она мне не подходит ием что программа ждёт ввода в клавиатуры. Мне же нужно что бы цикл выполнялся до тех пор пока я не нажму определённую клавишу.

Post #: 9
RE: Как работать с COM портом - 2009-08-06 16:28:05.266666   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
Не знаю правильно ли понял тебя…. Это тебе не подойдет?
while (getch()!=<тут int значение твоего символа>)
{
<тут код который выполняется в цикле>
}
код будет выполнятся пока не введешь символ.

ЗЫ. getc() и getch() очень схожи по своей работе. Первая читает 1 символ с заданного потока, вторая с консоли (стандартный ввод).
Post #: 10
RE: Как работать с COM портом - 2009-08-06 18:40:41.386666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Блин. Читайте первый пост. Человеку нужно из COM порта.
Post #: 11
RE: Как работать с COM портом - 2009-08-06 18:50:15.890000   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
Не. Читай 3-ий пост.
Видать ввиду его не очень глубоких знаний в C, ему приходится еще и по дороге объяснять кучу другого.
Post #: 12
RE: Как работать с COM портом - 2009-08-06 23:03:54.013333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: jogick
Спасибо!
Подскжите как организовать рботу программы так что бы она выдавала в порт данные до тех пор пока я не нажму определённую кнопку наклаве? Те способы ввода данных что я знаю останавливают программу до окончания ввод с клавы.

Эхмм… Для какой ОС? Дос? По-моему, так. Ну или очень похоже.
char buf[100], *ptr = buf; ... if (kbhit ()) { puts ("Хочу вас поздравить, вы нажали кнопку на клавиатуре.\n"); while (kbhit ()) { *ptr++ = getc (); if (ptr[-1] == '\n') { ptr[-1] = '\0'; printf ("вы набрали целую строчку: `%s'\n", buf); ptr = buf; } if (ptr - buf == sizeof (buf)) { fprintf (stderr, "СЛЫШЬ! Ты! Это! Харе стучать по клавиатуре. Буфер переполняешь.\n"); exit (-1); } } } puts ("Вы так и не нашли клавиатуру? Я продолжаю свою деструктивную деятельность, и никто мне не помешает\n"); *nix?
Способов уйма. Я пожалуй использовал бы select для проверки того, что что-то есть в STDIN_FILENO. Правда не знаю, как это со всякими там getc'ами увязать, я б наверное read использовал. Или быть может подключил бы ncurses и весь клавиатурный ввод гнал бы через ncurses.
win?
Не знаю ни одного. Все позабыл давно. Ну разве что положиться на posix совместимость и попытать счастья с select.
Post #: 13
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Как работать с COM портом







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.