Здравствуйте. На работе поставили задачу написать драйвер, создающий виртуальный COM порт, к которому сторонняя прога подключается как к реальному, но все отправляемые данные должны перенаправляться моему приложению. Также и наоборот все данные от моей проги. В этой статье рассматривается пример работы с компонентами Delphi для работы с Comпортом из библиотеки AsyncFree104. Его преимущество в том, что он автоматически при запуске программы перечисляет все порты как физические, так и виртуальные порты в системе. Дают возможность организации виртуального СОМ порта на ПК. Для FTDI соответственно USB Serial Converter и USB Serial Port. Драйверы CP210x. Драйверы FTDI. В общем случае, в целевом приборе придется заменить аппаратный драйвер RS232 на FT232 и установить драйвер виртуального COMпорта на. Windows USB Stack и библиотеку DLL, которая связывает прикладное программное обеспечение написанное на VC, Borland C Builder, Delphi, VB и т. Для чтения принятого байта существует функция usb. При наличии полученного байта она заносит его в указанную переменную и возвращает true, иначе возвращает false. Для отправки байта существует процедура usb. Она замаскирована под переменную, потому для отправки байта достаточно присвоить ей значение отправляемого байта. Объявим переменную размером в байт до основного цикла, в основном цикле будем проверять наличие полученных байт, и при их наличии отправлять их обратно. Значит, все работает как надо. Софт. Итак, наш микроконтроллер умеет принимать байты и тут же отправлять их обратно. Обновить Origin Для Sims 4 на этой странице. Теперь напишем свой софт для общения с ним я буду использовать Delphi. Создаем новый проект, раскидываем по форме необходимые компоненты Spin. Edit. 1 для указания номера порта. Button. 1 для установки соединения. Button. 2 для разрыва соединения. Spin. Edit. 2 для ввода байта в десятичном виде. Button. 3 для отправки байта. Memo. 1 для вывода принятой информации. Как уже было сказано выше, с com портом нужно работать так же, как и с обычным текстовым файлом используя функции Create. File, Write. File и Read. File. Дабы не вдаваться в подробности, возьмем готовую библиотеку для работы с com портом Com. Port. Вешаем на каждую кнопку необходимую задачу и получаем конечный код unit Unit. Windows, Messages, Sys. Utils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Std. Ctrls, Spin,Com. Port type. TForm. 1 classTFormSpin. Edit. 1 TSpin. Edit Button. TButton Button. 2 TButton Spin. Edit. 2 TSpin. Edit Button. TButton Memo. 1 TMemo procedure On. ReadSender TObject Read. Bytes array of Byte procedure Button. ClickSender TObject procedure Button. ClickSender TObject procedure Form. DestroySender TObject procedure Button. ClickSender TObject private. Потому добавлю немного более углубленной информации. Упрощение отправки данных. Отправлять информацию по одному байту не всегда удобно. Очень часто может пригодиться библиотека print. Она содержит процедуры по отправке данных всевозможной длины всевозможными форматами byte,hex,dec,bin,boolean что может упростить вывод данных в программе. А это значит что за ним придется всегда следить. Конечный результат содержится в прилагаемом архиве. Драйвера Так как драйвера не предназначены для нашей комбинации VID и PID, допишем наши значения в. Не считаю нужным пояснять каждую строчку все изменения можно увидеть в прилагаемом проекте. Результат. На скриншоте сложно разглядеть, но кнопка отправки активна только в момент наличия подключенного устройства, при этом каждые 5. МК. Как видно, организовать обмен данными между МК и ПК через USB не самое сложное занятие. Полученное соединение можно использовать не только для конечынх целей оно так же подходит для отладки программы. Ведь отправить на компьютер результаты расчетов, текущие состояния регистров и переменных куда нагляднее, чем моргать парой светодиодов азбукой морзе. И напоследок советую заглянуть в исходный код лампы настроения. Там можно найти довольно таки хороший вариант обработки принимаемых данных для организации удобного протокола обмена. P. S. Файлы проекта. Виртуальный Com Порт Драйвер Delphi© 2017