Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/50: Рейтинг темы: голосов - 50, средняя оценка - 4.80
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449

Передача и прием данных по виртуальному COM порту

22.06.2012, 00:35. Показов 10371. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время ))) вот собрал девайс на основе FT232BL

Вот отсылаю данные:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private SerialPort port;
 
         // Открытие порта 
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            port = new SerialPort("COM16");
            port.Open();
        }
        
        // Отсылаю...
        private void toolStripButton5_Click(object sender, EventArgs e)
        {
            const int dan = 23;          // Записываю...
            port.Write(dan.ToString()); // Отсылаю...
        }
Как получить ответ ?

Как улучшить передачу данных ?

Заранее спасибо !

Добавлено через 8 часов 47 минут
Что не кто не знает?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2012, 00:35
Ответы с готовыми решениями:

Прием и передача данных на одном порту
Всем Доброго времени суток. Где то слышал что возможно так что бы данные отправлялись и принимались на одном и том же порту. Что то...

Передача данных по виртуальному ком порту Simulink
Добрый вечер. Сориентируйте пожалуйста по передаче данных через виртуальный компорт. Возможность есть на примете что-то почитать,...

Прием данных по com порту
Подключил прибор по rs232. Провода 2, 4, и 5. Нужно принять данные с него. Вот код который я раздобыл: using System; using...

15
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
22.06.2012, 00:59
получить ответ можно так.

C#
1
2
3
4
5
6
7
8
9
        ////
                port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
        ////
 
        private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] b = new byte[port.BytesToRead];
            port.Read(b, 0, b.Length);
        }
а вот что значит улучшить передачу не совсем понятно !!!
1
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
22.06.2012, 07:54  [ТС]
Микроконтроллеру посылать данные в виде целого числа или массивом? Чтобы лучше он смок прочитать все полученные данные.
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
22.06.2012, 17:06
Микроконтроллер получает массив байт независимо от типа значения которое вы записали в СОМ порт. А вообще, лучше всего передавать массив байт, по крайней мере так обычно делают в микропроцессорной технике.
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
22.06.2012, 17:50  [ТС]
Можно пример на Ассемблере для AVR ?

Прием де кодировки данных...
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
22.06.2012, 17:57
Кодировку вы сами выбираете. Я на программировал avr только на С. Опишите задачу более конкретно, декодировки разные бывают. Бывает, например, что контроллер и ПК имеют разный порядок байтов в целочисленных типах (старший и младший байты поменяны местами), бывает, что обмен идёт по протоколу, создаются коды CRC и прочее. Опишите пожалуйста вашу конкретную задачу обмена
1
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
22.06.2012, 19:19  [ТС]
Задачи у меня пока что простые так ка только начинаю осваивать.


С приложения посылаю данные, микроконтроллер декодирует и включает светодиод.


Обратная связь.

Нажимаю на кнопку подключенную к микроконтроллеру, посылаю данные ПК приложение считывает и выводит сообщение что данные приняты)


Буду очень благодарен за помощь !!!
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
22.06.2012, 19:24  [ТС]
Фото устройства:
Миниатюры
Передача и прием данных по виртуальному COM порту   Передача и прием данных по виртуальному COM порту  
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
25.06.2012, 11:04
Это простая программа - если вы используете микроконтроллеры AVR, вам просто надо сконфигурировать регистр входов/выходов правильным образом, а затем в нужный бит, соответсвующий выходу выставить 1 - можете передавать по СОМ порту один байт - соответсвующий требуемому состоянию регистра. Не надо даже декодировать ничего. Принимаете ваш байт и записываете в регистр выходов. Вот нашёл примерчик в сети:
http://easyelectronics.ru/avr-... ast-1.html
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
26.06.2012, 20:02  [ТС]
Вот все вроде получается но вопросы есть)

С МК посылаю данные точнее быть кодировку 8 битную, это символ "A" выглядит так 0b10000000

Вот как мне получить эти данные ? чтобы можно было прочитать символ !
0
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 64
13.01.2015, 09:52
А реальную скорость передачи не подскажите? я просто сделал связь ПК с МК по USB (HID устройство), но почему- то получилась маленькая скорость(около 6 килоБайт/сек), а надо не меньше 10 килоБайт/сек. Вот решил попробовать на виртуальный COM порт перейти и не знаю получится или нет
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
13.01.2015, 17:03
Цитата Сообщение от sasha0192 Посмотреть сообщение
Вот как мне получить эти данные ?
Рассказываю по шагам.
1. Конфигурируете порт.
2.Открываете порт.
3. Ждете к-либо время, периодически проверяя, пришли ли данные.
3.1 Если данные пришли - читаете их и пишете в к-либо переменную.
3.2 Если данные не пришли - выбрасываете исключение по таймауту.
4. Закрываете порт.
PROFIT!
0
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 64
13.01.2015, 20:10
а возможно передать массив байт или нужно в цикле передавать по одному байту?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
13.01.2015, 20:18
Цитата Сообщение от Alex201 Посмотреть сообщение
возможно передать массив байт или нужно в цикле передавать по одному байту?
Как вам угодно. Все зависит от ситуации. Вообще в плане байт у порта всего одна перегрузка метода Write(), но ей можно и массив передать, и по кускам.
http://msdn.microsoft.com/ru-r... .110).aspx
0
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 64
13.01.2015, 20:29
Цитата Сообщение от insite2012 Посмотреть сообщение
Как вам угодно. Все зависит от ситуации. Вообще в плане байт у порта всего одна перегрузка метода Write(), но ей можно и массив передать, и по кускам.
http://msdn.microsoft.com/ru-r... .110).aspx
Спасибо! А вы не подскажите какую реальную скорость приема/передачи можно достичь? а я AT90USB162 собрал HID устройство, а там скорость маловата, мне нужно не меньше 10 килоБайт/сек
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
13.01.2015, 20:32
Цитата Сообщение от Alex201 Посмотреть сообщение
вы не подскажите какую реальную скорость приема/передачи можно достичь?
Это вряд ли. Тем более в таких системах мер. К примеру, у меня устройства на МК (как приемо-передающее) и ответное к нему (тоже на МК) общались через порт на скорости 38400 Baud. Это много или мало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2015, 20:32
Помогаю со студенческими работами здесь

Arduino. Прием данных по последовательному порту
Здравствуйте, подскажите пожалуйста, нашел в инете код приема 2-ух символов, но теперь по одному символу коряво принимает. Почему? Заранее...

Прием данных по СОМ-порту. Проблемы с массивом принятых байтов
Микроконтроллерное устройство каждую секунду на скорости 38400 шлет пакет, состоящий из признака начала пакета(*),Х,Х....Х,(#)-конец...

Передача данных по com порту
Добрый день! Написал программу открытия и передачи данных по com порту. Проблема в следующем. Если я пишу передачу в теле открытия ком...

Передача данных по LPT порту
Всем привет! Передо мной стоит задача: Необходимо передать файл по средствам парралельного порта с одного компьютера, на другой. (2...

Передача данных по ком-порту
Добрый вечер. Мне необходимо разобраться с работой блоков передачи данных по ком порту в симулинк. Что можете посоветовать, возможно книги,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru