<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3828172</guid>
        <pubDate>Sat, 11 Apr 2020 05:32:03 +0000</pubDate>
        <title>Работа с COM-портом в Excel</title>
        <link>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3828172</link>
        <description><![CDATA[Меджикивис: Ннн-дааааа... Пожалуй спецами много круче меня этот форум похвалиться не очень способен((((((<br>
Решение я изобразил, но оно получилось настолько громоздким, что пришлось вынести его в отдельный модуль :(<br>
Полный текст модуля привожу ниже.<br>
Создаёте в вашей программе новый модуль, копипастите в него ниже следующее без изменений, и  у вас доступна функция <strong class='tag-b'>initCOM</strong>, инициализирующая указанный порт на заданные параметры, и одновременно проверяющая его доступность. Использовать ее достатачно однократно вначале программы.<br>
Подробности поставил в комментах:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#39; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=== ИНИЦИАЛИЗАЦИЯ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА ===</div><div class="code_line">&#39;</div><div class="code_line">&#39; &nbsp;Модуль для инициализации COM-порта.</div><div class="code_line">&#39; Содержит функцию initCOM, которая имеет пять параметров в следующем порядке:</div><div class="code_line">&#39; &nbsp; &nbsp;COMn -имя порта, строка вида например COM1</div><div class="code_line">&#39; остальные параметры - целый числовой тип (Integer):</div><div class="code_line">&#39; &nbsp; &nbsp;baud -скорость приемопередачи, число из ряда стандартных скоростей</div><div class="code_line">&#39; &nbsp; &nbsp;bits -количество битов в посылке</div><div class="code_line">&#39; &nbsp; &nbsp;parity: 0-без четности(N), 1-нечетность, 2-четность</div><div class="code_line">&#39; &nbsp; &nbsp;stops -количество стоповых бит (1 или 2)</div><div class="code_line">&#39; &nbsp;Стандартный режим для COM1 9600 8N1 будет выглядеть как initCOM(&quot;COM1&quot;, 9600, 8, 0, 1)</div><div class="code_line">&#39; &nbsp;Функция возвращает пустую строку в случае успешной инициализации порта,</div><div class="code_line">&#39; &nbsp;либо строку с сообщением об ошибке на русском языке.</div><div class="code_line">&#39; &nbsp;После этого порт готов к открытию стандартным оператором OPEN, например так:</div><div class="code_line">&#39; &nbsp; &nbsp; &nbsp; &nbsp;filenum = FreeFile</div><div class="code_line">&#39; &nbsp; &nbsp; &nbsp; &nbsp;Open COMport$ For Random As #filenum Len = 256</div><div class="code_line">&#39; &nbsp; &nbsp; &nbsp; &nbsp;Put #filenum, 1, &quot;test&quot; &nbsp; &nbsp; &nbsp;&#39;передача строки</div><div class="code_line">&#39; &nbsp; &nbsp; &nbsp; &nbsp;Get #filenum, 1, comstring$ &nbsp;&#39;прием строки</div><div class="code_line">&#39; &nbsp; &nbsp; &nbsp; &nbsp;Close #filenum</div><div class="code_line">&#39; &nbsp; где COMport$ содержит то же самое имя порта.</div><div class="code_line">&#39;=====================================================================</div><div class="code_line">&#39;</div><div class="code_line">Private BarDCB As DCB &nbsp; &#39;таблица параметров порта</div><div class="code_line">Private CtimeOut As COMMTIMEOUTS &nbsp;&#39;таймауты порта</div><div class="code_line">&#39;Структуры для параметров настройки порта</div><div class="code_line">Type COMMTIMEOUTS</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ReadIntervalTimeout As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ReadTotalTimeoutMultiplier As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ReadTotalTimeoutConstant As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;WriteTotalTimeoutMultiplier As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;WriteTotalTimeoutConstant As Long</div><div class="code_line">End Type</div><div class="code_line">Type DCB</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DCBlength As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;BaudRate As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;fBitFields As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;wReserved As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;XonLim As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;XoffLim As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ByteSize As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;parity As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;StopBits As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;XonChar As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;XoffChar As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ErrorChar As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;EofChar As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;EvtChar As Byte</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;wReserved1 As Integer</div><div class="code_line">End Type</div><div class="code_line">&#39;структура для операций файлового чтения-записи</div><div class="code_line">Type OVERLAPPED</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Internal As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;InternalHigh As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;offset As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;OffsetHigh As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;hEvent As Long</div><div class="code_line">End Type</div><div class="code_line">&#39;объявления функций API</div><div class="code_line">Declare Function CreateFile Lib &quot;kernel32&quot; Alias &quot;CreateFileA&quot; (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long</div><div class="code_line">Declare Function PurgeComm Lib &quot;kernel32&quot; (ByVal hFile As Long, ByVal dwFlags As Long) As Long</div><div class="code_line">Declare Function SetCommTimeouts Lib &quot;kernel32&quot; (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long</div><div class="code_line">Declare Function SetCommState Lib &quot;kernel32&quot; (ByVal hCommDev As Long, lpDCB As DCB) As Long</div><div class="code_line">Declare Function CloseHandle Lib &quot;kernel32&quot; (ByVal hObject As Long) As Long</div><div class="code_line">Declare Function GetLastError Lib &quot;kernel32&quot; () As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Public Function initCOM(ByVal COMn As String, ByVal baud As Integer, ByVal bits As Integer, ByVal parity As Integer, ByVal stops As Integer) As String</div><div class="code_line">&#39;Инициализация COM-порта</div><div class="code_line">&#39;в случае ошибки выдает строку сообщения об ошибке,</div><div class="code_line">&#39;в противном случае - пустую строку.</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim retval As Long</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;initCOM = &quot;&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ComNum = CreateFile(COMn, &amp;HC0000000, 0, 0&amp;, &amp;H3, 0, 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If ComNum = -1 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;initCOM = &quot;Ошибка инициализации порта&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Exit Function</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; retval = PurgeComm(ComNum, 0) &#39;очистка порта, очередей</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; Начальное заполнение таблицы параметров приемопередачи</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.DCBlength = 28 &nbsp;&#39;длина блока DCB</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.BaudRate = baud &#39;скорость приемопередачи в бодах</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.fBitFields = &amp;H83 &#39;Битовое поле, биты которого означают следующее:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;1 fBinary вкл двоичный режим. Всегда 1 (кроме Windows 3.x :))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;2 fParity &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 -проверять четность, возвращать код ошибки.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;3 fOutxCtsFlow &nbsp; &nbsp; 1 -задействовать сигнал CTS: при сброшенном CTS приостанавливает передачу до появления CTS.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;4 OutxDsrFlow &nbsp; &nbsp; &nbsp;1 -точно так же задействовать сигнал DSR</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;5,6 fDtrControl &nbsp; &nbsp;режим управления DTR. Три значения, не выяснил, каких.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;7 fDsrSensitivity &nbsp;чувствительность драйвера к DSR. При 1 драйвер устройства будет игнорировать данные, принятые без DSR.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;8 fTXContinueOnXoff 0 - прием будет приостанавливаться принятым символом Xoff и возобновляться Xon.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;9 fOutX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 -передача будет приостанавливаться принятым символом Xoff и возобновляться Xon.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;10 fInX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 -драйвер будет передавать управляющие символы Xon\Xoff</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;11 fErrorChar &nbsp; &nbsp; &nbsp;1 -при ошибке по четности заменить ошибочный символ на заданный в поле ErrorChar</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;12 fNull &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 -отбрасывать при передаче нулевые байты</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;13,14 fRtsControl &nbsp;0 -выдавать сигнал RTS. Возможны три значения для выбора режима управления, какая кодировка - не выяснил.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;15 fAbortOnError &nbsp; 1 -при возникновении ошибки драйвер остановится до вызова функции ClearCommError.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;16 fDummy2 &nbsp; &nbsp; &nbsp; &nbsp; =0 зарезервировано, не используется.</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.wReserved = 0 &#39;не используется, должен быть 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.XonLim = 128 &#39;Задает минимальное число символов в приемном буфере перед посылкой символа XON</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.XoffLim = 64 &#39;Определяет макс кол-во байт в приемном буфере перед посылкой символа XOFF. Оно вычисляется вычитанием данного значения из размера применого буфера (в байтах)</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.ByteSize = bits &nbsp;&#39;разрядность данных (кол-во бит)</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.parity = parity &nbsp;&#39;1-проверять нечетность, 2-проверять четность, 0-не проверять ничего</div><div class="code_line">&#39; &nbsp; &nbsp;BarDCB.StopBits = 0 &nbsp; &nbsp; &#39;количество стоповых бит: 0 -один, 1 -полтора, 2 -два</div><div class="code_line">&nbsp;&nbsp; &nbsp;If stops &#62;= 2 Then BarDCB.StopBits = 2 Else BarDCB.StopBits = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.XonChar = 17 &#39;символ, используемый в качестве Xon</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.XoffChar = 19 &#39;символ, используемый в качестве Xoff</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.ErrorChar = 35 &#39;символ, заменяющий принятый с ошибкой</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.EofChar = 26 &#39;символ &quot;конец данных&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.EvtChar = 0 &nbsp;&#39;символ для сигнализации о событии</div><div class="code_line">&nbsp;&nbsp; &nbsp;BarDCB.wReserved1 = 0 &#39;зарезервировано. Не используется.</div><div class="code_line">&nbsp;&nbsp; &nbsp;retval = SetCommState(ComNum, BarDCB)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If retval = -1 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;retval = GetLastError()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;initCOM = &quot;Не удается настроить порт Error: &quot; + retval</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;retval = CloseHandle(ComNum)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Exit Function</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Времена ожидания (Time Outs) в миллисекундах</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;нулевые времена означают, что таймауты не используются.</div><div class="code_line">&nbsp;&nbsp; &nbsp;CtimeOut.ReadIntervalTimeout = 1 &#39;максимальное время между двумя принимаемыми символами.</div><div class="code_line">&nbsp;&nbsp; &nbsp;CtimeOut.ReadTotalTimeoutConstant = 1 &#39;постоянная часть таймаута на прием</div><div class="code_line">&nbsp;&nbsp; &nbsp;CtimeOut.ReadTotalTimeoutMultiplier = 1 &#39;время на прием одного символа (для вычисления переменной части таймаута)</div><div class="code_line">&nbsp;&nbsp; &nbsp;CtimeOut.WriteTotalTimeoutConstant = 20 &#39;постоянная часть таймаута на передачу</div><div class="code_line">&nbsp;&nbsp; &nbsp;CtimeOut.WriteTotalTimeoutMultiplier = 5 &#39;время на передачу одного символа (для вычисления переменной части таймаута)</div><div class="code_line">&nbsp;&nbsp; &nbsp;retval = SetCommTimeouts(ComNum, CtimeOut)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If retval = -1 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;retval = GetLastError()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;initCOM = &quot;Ошибка при установке таймаутов, Error: &quot; &amp; retval</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;retval = CloseHandle(ComNum)</div><div class="code_line">End Function</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Хотя вопрос темы этим по-существу решен, я тему не закрываю, в надежде, что может быть кто-нибудь напишет более изящное решение.]]></description>
        <author>Меджикивис</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827595</guid>
        <pubDate>Sun, 05 Apr 2020 11:43:46 +0000</pubDate>
        <title>Работа с COM-портом в Excel</title>
        <link>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827595</link>
        <description><![CDATA[Меджикивис: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417929&view=findpost&p=3827593'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MBo &#064; <time class="tag-quote__quoted-time" datetime="2020-04-05T10:21:21+00:00">05.04.20, 10:21</time></span><div class='quote '>Open &quot;COM1:9600,чего там еще нужно&quot; работает?</div></div>Не работает.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417929&view=findpost&p=3827593'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MBo &#064; <time class="tag-quote__quoted-time" datetime="2020-04-05T10:21:21+00:00">05.04.20, 10:21</time></span><div class='quote '>Кстати, подсмотреть, что выполняется при работе другой программы, можно с помощью PortMon или AccessPort</div></div> Дык я знаю, что она делает: инициализирует порт.<br>
Вопрос - как это сделать в VBA.]]></description>
        <author>Меджикивис</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827593</guid>
        <pubDate>Sun, 05 Apr 2020 10:21:21 +0000</pubDate>
        <title>Работа с COM-портом в Excel</title>
        <link>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827593</link>
        <description><![CDATA[MBo: Open &quot;COM1:9600,чего там еще нужно&quot; работает?<br><br>Кстати, подсмотреть, что выполняется при работе другой программы, можно с помощью <br>PortMon или AccessPort]]></description>
        <author>MBo</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827589</guid>
        <pubDate>Sun, 05 Apr 2020 07:27:30 +0000</pubDate>
        <title>Работа с COM-портом в Excel</title>
        <link>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827589</link>
        <description><![CDATA[Меджикивис: Подключился на порт осциллографом. (На прием-то порт виснет, но передавать - передает.)<br>Так вот, передача идет не на 9600 как указано в свойствах порта, а на очень медленной скорости, 110 где-то.(((((((((<br><br>Почему так - совершенно непонятно, но абсолютно ясно, что порт требует инициализации.<br>Как сделать?]]></description>
        <author>Меджикивис</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827540</guid>
        <pubDate>Sat, 04 Apr 2020 06:21:37 +0000</pubDate>
        <title>Работа с COM-портом в Excel</title>
        <link>https://forum.sources.ru/index.php?showtopic=417929&amp;view=findpost&amp;p=3827540</link>
        <description><![CDATA[Меджикивис: Есть задача отправить/получить данные в Экселе по RS-232.<br>
Я написал в макросе такой код:<br>
<br>
filenum = FreeFile<br>
Open &quot;COM1&quot; For Random As #filenum<br>
Put #filenum, 1, &quot;test string&quot;<br>
Get #filenum, 1, a&#036;<br>
Close #filenum<br>
<br>
На операторе Get он почему-то виснет. Не показывает никаких ошибок, просто молча виснет макрос.<br>
<br>
НО&#33;<br>
Если перед запуском Экселя запустить какую-нибудь стороннюю программу работающую с COM, (я использовал терминал), закрыть ее, а потом запустить Excel - то всё работает&#33; Выше приведенный код исправно передает и принимает.<br>
Можно закрывать Excel, запускать его вновь - всё продолжает работать; - до выключения компа.<br>
Но после рестарта компа - опять висяк.<br>
<br>
Очевидно, что после начальной загрузки Винды порт настроен как-то неправильно. Терминал его настраивает как надо, после чего порт нормально работоспособен.<br>
<br>
<strong class='tag-b'>Вопрос</strong>:<br>
<em class='tag-i'>Как правильно настроить порт, не выходя из Excel?</em><br>
<br>
ЗЫ:<br>
После рестарта компа сразу открыл Менеджер Устройств, посмотрел Свойства COM1: 9600, 8N1, - стандартный режим. Ненормальностей не обнаружил. Никаких конфликтов, никаких ошибок.<br>
Винда - XP. Порт - &quot;железный&quot;, на материнке.]]></description>
        <author>Меджикивис</author>
        <category>VB for Application</category>
      </item>
	
      </channel>
      </rss>
	