Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.12.2005, 13:24
|
|
URY
Гость
|
COMпорт+Delphi
Подскажите,пожалуйста,почему с помощью
EscapeCommFunction(comh,SETRTS) - выводится '1' , а
EscapeCommFunction(comh,SETDTR) - не выводится?
Вроде оба вывода выходные.
|
|
|
|
09.12.2005, 15:11
|
|
Гость
|
Уточняю процедуру:
var comh: hFile;
begin
comh:=CreateFile('\\.\com1',GENERIC_READ or GENERIC_WRITE, 0,
nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
EscapeCommFunction(comh,SETDTR);
CloseHandle(comh);
end;
Сигнал RTS в порт выводится, а DTR -нет, почему?
|
|
|
|
09.12.2005, 16:03
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: COMпорт+Delphi
Сообщение от URY
|
Подскажите,пожалуйста,почему с помощью
EscapeCommFunction(comh,SETRTS) - выводится '1' , а
EscapeCommFunction(comh,SETDTR) - не выводится?
Вроде оба вывода выходные.
|
Должно выводиться. На каких пинах порта и какие уровни видите? Кстати, лог. 1 на RS232 это -12в а лог.0 это +12в
А что будет после закрытия handle - я не знаю.
|
|
|
|
09.12.2005, 16:46
|
|
Гость
|
При SETRTS +12v на 7-ом пине порта,
при CLRRTS -12v там-же, относительно пятого.
При SETDTR -12v на 4-ом пине,
при CLRDTR -12v .
Объясните,пожалуйста, что означают константы при
открытии порта?
comh:=CreatFile( ?????)
|
|
|
|
09.12.2005, 17:30
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Сообщение от Anonymous
|
При SETRTS +12v на 7-ом пине порта,
при CLRRTS -12v там-же, относительно пятого.
При SETDTR -12v на 4-ом пине,
при CLRDTR -12v .
|
должно быть -12 при лог.1 ил +12 при лог. 0
Еще раз - после установки закрываете handle?
Цитата:
|
Объясните,пожалуйста, что означают константы при
открытии порта?
comh:=CreatFile( ?????)
|
А Ctrl-F1 в дельфях нажать лениво?
|
|
|
|
10.12.2005, 11:20
|
|
Гость
|
Спасибо за помощь.
Логический уровень RTS изменяется без проблем,
а DTR молчит.???
procedure TForm1.Button1Click(Sender: TObject);
var comh: hFile;
begin
comh:=CreateFile('\\?\com1',GENERIC_READ or GENERIC_WRITE, 0,
nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
EscapeCommFunction(comh,SETDTR);
EscapeCommFunction(comh,SETRTS);
CloseHandle(comh);
end;
procedure TForm1.Button2Click(Sender: TObject);
var comh: hFile;
begin
comh:=CreateFile('\\.\com1',GENERIC_READ or GENERIC_WRITE, 0,
nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
EscapeCommFunction(comh,CLRRTS);
EscapeCommFunction(comh,CLRDTR);
CloseHandle(comh);
end;
|
|
|
|
10.12.2005, 20:51
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Сообщение от Anonymous
|
Логический уровень RTS изменяется без проблем,а DTR молчит.???
|
Не возникала мысль открытие COM порта сделать при старте, а закрытие - при выходе из программы? Что будет на пинах после закрытия - одному богу известно. Вы же его закрыли, то есть вам он более не нужен.
|
|
|
|
12.12.2005, 08:38
|
|
Гость
|
Вы правы,БОЛЬШОЕ СПАСИБО!
Сигнал DTR стал менять состояние.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:49.
|
|