![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с СОМ портом
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В (плюс - минус погрешность глазомера ;-))