|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.06.2014, 12:28 | #1 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
Com port (RS232)
Доброго дня.
помогите разобраться с настройкой ком порта. Код:
Последний раз редактировалось Stilet; 16.06.2014 в 07:57. |
11.06.2014, 12:46 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
DCB var;
BuildCommDCB(..., &var); Не путайте тип и переменную типа. |
16.06.2014, 05:18 | #3 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
|
16.06.2014, 12:06 | #4 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
DCB dcb;
COMMTIMEOUTS ots; char a[5]="Test", b[5]="",c[5]; DWORD bc; ots.ReadIntervalTimeout=100; //îáùåå âðåìÿ ots.ReadTotalTimeoutMultiplier=50; // ìíîæèòåëü ots.ReadTotalTimeoutConstant=50; //êîíñòàíòà ots.WriteTotalTimeoutMultiplier=50; ots.WriteTotalTimeoutConstant=50; HANDLE port; port = CreateFile("Com1", GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING,0,NULL ); //ñîçäàåì ïîðò BuildCommDCB("baud=9600 parity=N data=8 stop=1", &dcb); //êîíôèãóðèðîâàíèå ïîðòà if (port == INVALID_HANDLE_VALUE) ShowMessage("Ñëîìàëñÿ"); SetCommState(port,&dcb); //çàïèñü êîíôèãóðàöèè â ïîðò //ShowMessage(dcb.BaudRate); //òèïà ïðîâåðêà, ÷òî çàïèñàëîñü //SetCommTimeouts(port,&ots); //òàéìàóò íà ÷òåíèå è çàïèñü â ïîðò if(WaitForSingleObject(port,100)!=0 )ShowMessage("Ñëîìàëñÿ"); //âðåìÿ îæèäàíèÿ îò îáúåêòà PurgeComm(port,PURGE_TXCLEAR|PURGE_ RXCLEAR); //î÷èùàåì áóôåð ïîðòà îò ìócoðà WriteFile(port,"ABCDE",5,&bc,NULL); ReadFile(port,&b,5,&bc,NULL); ShowMessage(b); //ClearCommError(port, CloseHandle(port); //çàêðûòèå ïîðòà ___________________________________ ___________________________________ _ Подскажите, пожалуйста, как проверить работоспособность. данные пишу в порт, принемаю, смотрю через ShowMessage(b) - а в ответ ни чего((((. можен он пишет в порт - ни куда, и ответа нет ни от куда??? |
16.06.2014, 12:10 | #5 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
код поправлю
DCB dcb; COMMTIMEOUTS ots; char a[5]="Test", b[5]="",c[5]; DWORD bc; ots.ReadIntervalTimeout=100; ots.ReadTotalTimeoutMultiplier=50; ots.ReadTotalTimeoutConstant=50; ots.WriteTotalTimeoutMultiplier=50; ots.WriteTotalTimeoutConstant=50; HANDLE port; port = CreateFile("Com1", GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING,0,NULL ); BuildCommDCB("baud=9600 parity=N data=8 stop=1", &dcb); if (port == INVALID_HANDLE_VALUE) ShowMessage("Не Работает"); SetCommState(port,&dcb); //SetCommTimeouts(port,&ots); if(WaitForSingleObject(port,100)!=0 )ShowMessage("Не Работает"); PurgeComm(port,PURGE_TXCLEAR|PURGE_ RXCLEAR); WriteFile(port,"ABCDE",5,&bc,NULL); ReadFile(port,&b,5,&bc,NULL); ShowMessage(b); CloseHandle(port); //çàêðûòèå ïîðòà |
16.06.2014, 17:30 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
А что подключено к порту?
Почему вы думаете, что должен быть ответ? Поставьте вот эту утилиту и понаблюдайте: http://technet.microsoft.com/en-us/s.../bb896644.aspx Почитайте и вот это: http://www.lammertbies.nl/comm/info/...w_control.html |
16.06.2014, 19:31 | #7 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
Вот и у меня закрались подозрения, что если ни чего к нему не подключено то ответа, возможно, не будет. пробую на буке в виртуалке. на буке ком портов нет.
Но с другой стороны, если я его открываю и туда что то записываю, значит оно там и должно остаться. А потом считываю то что записал. за инфу спасибо, почитаю |
16.06.2014, 20:09 | #8 | |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
Цитата:
|
|
16.06.2014, 20:21 | #9 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,742
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
17.06.2014, 05:00 | #10 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с RS232 в DELPHI | 100GRamm | Общие вопросы Delphi | 9 | 17.09.2021 00:18 |
программа Delphi RS232-Excel | mxroman | Общие вопросы Delphi | 1 | 05.12.2011 08:34 |
Java. Работа с RS232 Ethernet | MikeVazovsky | Общие вопросы по Java, Java SE, Kotlin | 1 | 04.11.2011 18:13 |
RS232, Библиотека Игоря Павлова TComPort | xBugiman | Компоненты Delphi | 11 | 12.06.2010 13:41 |