Перейти к содержанию

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


Рекомендуемые сообщения

Есть небольшая железяка, под COM порт .

Как под Linux`ом с ней общаться ??

Какие библиотеки? Если есть примеры или ссылки плиз в мыло.

Ссылка на комментарий
Поделиться на другие сайты

Открываешь функцией open файл /dev/ttyS0 для COM1 или /dev/ttyS1 для COM2 и читаешь-пишешь функциями read и write соответственно.

Если есть желание, могу выслать бооольшой мануал по COM-портам под POSIX, который сам получил таким же способом.

-- это все для Linux. А для Windows почитайте про ф-ии CreateFile, ReadFile и WriteFile.

Попробую привести пример под Windows (под NT не пробовал):

HANDLE com_handle;

DCB f_dcb;

void init_com()

{

com_handle = CreateFile("COM1",0x0C0000000,0,0,3,0,0);

if (com_handle == INVALID_HANDLE_VALUE)

{

// ......

// - Порт занят

}

BuildCommDCB(COM1:10400,n,8,1,&f_dcb);

f_dcb.fDtrControl = 1;

f_dcb.fRtsControl = 1;

SetCommState(com_handle,&f_dcb);

COMMTIMEOUTS time_out;

GetCommTimeouts(com_handle,&time_out);

time_out.ReadTotalTimeoutConstant = 0x64;

SetCommTimeouts(com_handle,&time_out);

EscapeCommFunction(com_handle,5);

EscapeCommFunction(com_handle,3);

}

void TalkToComPort(/*........*/) /* - где memo_write - то, что пишем, а memo_read - куда читаем. 128 - сколько читаем, а written и readed - сколько реально прочитали. */

{

WriteFile(com_handle,memo_write,sizeof(write),&written,0);

ReadFile(com_handle,memo_read,128,&readed,0);

}

Ссылка на комментарий
Поделиться на другие сайты

Только возникли проблемы - как одновременно читать и писать, а если закрывать дескриптор то при повторном открытии,для чтения ответа, в файле уже ничего нет(пробовал на модеме).

Ссылка на комментарий
Поделиться на другие сайты

Для всех остальных - http://el.h10.ru/modem.html

А вообще, COM- на то и последовательный порт, чтобы с его помощью нельзя было и читать и писать одновременно.

Ссылка на комментарий
Поделиться на другие сайты

У меня глюки с сылкой - все перепробовал: koi8, cp1251, mac, iso,ibm - не работает ни одна кодировка.

Re:EL[michlen] А как быть? Хочется все-таки и ответ OK получить на ATZ.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...