Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с СОМ портом


zamkom ©   (2004-01-26 17:35:00) 

Люди подскажите пожалуйста как работать с СОМ портом. Т.е. например мне необходимо послать на 7 ножку напряжение в 5 вольт. Или скиньте плиз линк.


Dmitriy_G   (2004-01-27 12:23:00) [1]

zamkom   (27.01.04 10:31) [6]
Отправил, только сильно не ругайся. Она для сопряжения ПикаF877 и компутера по RS-232


Dmitriy_G   (2004-01-27 12:11:00) [2]

Всеми ножками можно управлять если они настроенны на вывод. Что тут непонятного :) Другое дело как
ЗЫ я про СОМ и LPT, а то придеретесь еще :)


zamkom   (2004-01-27 10:33:00) [3]

tesseract ©   (27.01.04 09:25) [5]
Если нельзя управлять ножками на СОМ порте, то можно ли ими управлять на LPT?


zamkom   (2004-01-27 10:31:00) [4]

Dmitriy_G ©   (27.01.04 06:20) [4]
Пожалуйста сбрось на мыло, буду ждать.


tesseract   (2004-01-27 09:25:00) [5]

RS232 - последовательный порт, там нельзя управлять ножками Только TxD, RxD, ну и CtS, Rts


Dmitriy_G   (2004-01-27 06:20:00) [6]

//Для начала инициализация
begin
HCom:=CreateFile(PChar(ComboBox1.Text),GENERIC_READ+GENERIC_WRITE,0,nil,Open_Existing,FILE_ATTRIBUTE_NORMAL,0);
If hCom=INVALID_HANDLE_VALUE then Exit;

//Настройка COM порта
GetCommState(HCom,SpCom);
SpCom.BaudRate:=CBR_2400; //скорость
SpCom.Parity:=NOPARITY; //четность
SpCom.StopBits:=ONESTOPBIT; //кол стоп бит
SpCom.ByteSize:=8; //кол байт
SetCommState(HCom,SpCom); // Устанавливаем параметры

EscapeCommFunction(HCom,CLRRTS); //Сброс RTS
end;

//Далее передаем

cO:=StrToInt('$0'+Edit1.text);

//Проверить наличие CTS, если True то

GetCommModemStatus(HCom,StatusCOM);
If MS_CTS_ON and StatusCOM <> 0 then
begin
EscapeCommFunction(HCom,SETRTS); //Уст RTS
//Принимаем Байт
//------------------------------
 ReadFile(HCom,cI,1,n,nil);
 Label1.Caption:=IntToStr(cI);
//------------------------------
 EscapeCommFunction(HCom,CLRRTS); //Сбр RTS
end;

// Передаем Байт
EscapeCommFunction(HCom,SETRTS); //Уст RTS

// Проверяем наличие CTS
Repeat
GetCommModemStatus(HCom,StatusCOM);
Until (MS_CTS_ON and StatusCOM <> 0);

//*********Передаем Байт************
//Если CTS установлен, передаем байт
 WriteFile(HCom,cO,1,n,nil);

 EscapeCommFunction(HCom,CLRRTS); //Сброс RTS

end;

Прошу прощения если где нагрешил. Если нужно исходник намылю.
Всего.


jack128   (2004-01-26 17:52:00) [7]


> Да про вольты я так просто написал мне принцип главное.
А ты почаще "так просто" пиши, будешь часто ненужные ответы получать.

Пошуруй в разделе "статьи" этого сайта. Скачай какой нить компонент с торри.нет (для начала TCommPortDriver сойдет)


zamkom   (2004-01-26 17:49:00) [8]

jack128 ©   (26.01.04 17:43) [1]
Да про вольты я так просто написал мне принцип главное.


jack128   (2004-01-26 17:43:00) [9]


> Т.е. например мне необходимо послать на 7 ножку напряжение
> в 5 вольт
не помню я распайку порта, что там деает 7 нога, но на компе тебе врядли удастся выдать 5 вольт. По стандарту напряжение лог нуля +5 - +12В , но реально большенство компов выдает около 12. А вот PocketPC (по крайней мере Mio 338) выдает действительно 5В (плюс - минус погрешность глазомера ;-))


Наверх

Титульная страница Поиск, карта сайта Написать письмо