Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
IREK_84
5 / 1 / 1
Регистрация: 30.07.2013
Сообщений: 17
#1

Обмен данными по COM порту на нестандартной скорости - C++

08.08.2013, 17:15. Просмотров 2838. Ответов 14
Метки нет (Все метки)

подскажите пожалуйста, как написать программу для обмена данными по COM порту на не стандартной скорости, например 10400бод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обмен данными по COM порту на нестандартной скорости (C++):

Проверка скорости кода. Обмен опытом - C++
Вводные данные: - C++ стандарта 11 - gcc Работаю над ускорением кода для работы со строками. К примеру, сравниваю между собой...

Межпрограммный обмен данными - C++
Помогите сделать , чтобы при вводе в одной консоле(сервере) выдавала на другую консоль(клиент) текст В данный момент этот код выдаёт...

Обмен данными между процессами - C++
При создании дочернего процесса при помощи функции BOOL CreateProcess ( LPCTSTR lpApplicationName, // имя...

Обмен данными между программами - C++
Здравствуйте Помогите сделать программу, чтобы при наборе все символов в сервере они сразу же отображались в клиенте, вот похожее, но...

Обмен данными между процессами - C++
Уважаемое сообщество, подскажите, пожалуйста, с решением такой проблемы: у меня два процесса c# и с++, и мне необходимо передавать массив...

Обмен данными между процессами - C++
Добрый день! Нужно распараллелить программу. Суть в следующем: должны быть два процесса(разные функции), идущих параллельно, и второй...

14
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
08.08.2013, 17:57 #2
никак. какой смысл? Кто или что с тобой свяжется на нестандартной скорости?
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
08.08.2013, 17:59 #3
http://linuxportal.ru/entry.php/2171_0_3_0_C/
Кстати всеже интересно зачем
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
08.08.2013, 18:01 #4
Цитата Сообщение от Winorun Посмотреть сообщение
http://linuxportal.ru/entry.php/2171_0_3_0_C/
Это вообще-то для Линуксоидов. Для винды не подойдёт. Это раз.
Автор спрашивал не как работать с портом, а как работать с ним на нестандартной скорости. Очевидно, как открывать/закрывать порт в своей системе он и так знает, наверное. Это два.
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
08.08.2013, 18:15 #5
там есть две такие вещи
C
1
2
3
4
...
   speed_t c_ispeed;           /* input speed */ 
   speed_t c_ospeed;           /* output speed */ 
...
Ну а система в сообщении не прописана. Хотя с учетом того что винда это сделать не позволяет...
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.08.2013, 19:29 #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Это вообще-то для Линуксоидов.
Это не раздел для Windows, и ТС о ОС ничего не говорил.

http://stackoverflow.com/questions/4...152671#7152671

В Linux вроде как так можно установить нестандартную скорость на порту:
Bash
1
stty -F /dev/ttyX0 567890
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
08.08.2013, 19:50 #7
Цитата Сообщение от castaway Посмотреть сообщение
Это не раздел для Windows, и ТС о ОС ничего не говорил.
Ну мне вот в первую очередь интересно, зачем вообще нужна нестандартная скорость? У автора есть какой-то инопланетный прибор, общающийся по RS-232, создатели которого не знали стандартных скоростей?

Далее, Под виндой ведь тоже скорость задаётся заполнением соотв. поля в структуре DCB. Обычно этому полю присваивают константы из серии CBR_300, CBR_600, CBR_1200, CBR_2400 и.т.д., но теоретически можно прописать туда свою нестандартную скорость. Так что не в лине/винде дело.

Но я понятия не имею, будет ли работать в настройках COM порта эта скорость, потому что никогда и не пытался. Просто вот работать это будет врядли, и вот почему.

Если рассуждать в теории, у контроллера COM порта имеется тактовый генератор и делитель частоты, способные выдавать ограниченный набор частот - делителей некой базовой частоты.
Каким образом контроллер COM порта сможет обеспечить другие частоты? Перепробуйте хоть десяток ОСей - всё упрётся в железо.
Максимум, что ты получишь, это работу на стандартной частоте, наиболее близкой к заданной.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.08.2013, 19:56 #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ну мне вот в первую очередь интересно, зачем вообще нужна нестандартная скорость?
Да я сам понятия не имею для чего это может пригодится. Может ему(ей) препод такой вопрос задал. Давай спросим.

IREK_84, зачем тебе нестандартная скорость на порту?
0
VladimirU
125 / 103 / 18
Регистрация: 14.02.2013
Сообщений: 782
08.08.2013, 21:25 #9
Вот к примеру у меня есть желание собрать устройство которое будет зажигать и гасить лампы накаливания с помощью ПК.
Я решил связать моё устройство с ПК через интерфейс RS-232 - UART.
У меня в городе трудно найти радиодетали которые надо для моего устройства поэтому я буду использовать те которые найду.
Вообщем если к микроконтроллеру подключить кварцевый резонатор на 4 МГц то его интерфейс RS-232 будет работать на скорости 9615 бит.сек.

Добавлено через 2 минуты
Цитата Сообщение от IREK_84 Посмотреть сообщение
подскажите пожалуйста, как написать программу для обмена данными по COM порту на не стандартной скорости, например 10400бод.
Возможно тебе подойдёт справочник по WinAPI функциям.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
08.08.2013, 21:30 #10
Цитата Сообщение от VladimirU Посмотреть сообщение
Вообщем если к микроконтроллеру подключить кварцевый резонатор на 4 МГц то его интерфейс RS-232 будет работать на скорости 9615 бит.сек.
Вот именно! Это вполне стандартная скорость 9600. А автору нужно непонятно что.
Цитата Сообщение от VladimirU Посмотреть сообщение
Возможно тебе подойдёт справочник по WinAPI функциям.
Какой справочник???!!! И так ясно, как работать с COM портом через WinAPI. Автора интересовало именно применение нестандартных скоростей.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.08.2013, 21:32 #11
Везде есть интернет и почта, всякие микроконтроллеры и радиодетали можно заказать по почте на китайских сайтах типа DealeXtreme ( http://dx.com/ru/?tc=RUB&gclid=CM7jh...FZJ7cAodMwoA-Q ), так что это не причина использовать нестандартную скорость.
0
VladimirU
125 / 103 / 18
Регистрация: 14.02.2013
Сообщений: 782
08.08.2013, 21:38 #12
Применение нестандартных скоростей возможно, а именно от 75 до 128000 бит.сек.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.08.2013, 21:42 #13
Я с этим не спорил.
0
IREK_84
5 / 1 / 1
Регистрация: 30.07.2013
Сообщений: 17
08.08.2013, 22:30  [ТС] #14
10400 бод надо для связи с К-Line адаптером (диагностика авто), люди же делают подобные программы.
всем спасибо за ответы! пока я узжаю на несколько неделью
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.08.2013, 22:49 #15
Насколько я понимаю, в Windows достаточно указать значение 10400 в структуре DCB при вызове функции SetCommState.
...
BaudRate
The baud rate at which the communications device operates. This member can be an actual baud rate value, or one of the following indexes.
...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2013, 22:49
Привет! Вот еще темы с ответами:

Технология обмен данными между приложениями - C++
Приветствую профессионалов и любителей программирования! Принимайте новичка. Собственно такой вопрос, скорее системного характера....

Обмен данными GUI и шахматного движка - C++
Пишу GUI для работы с шахматным движком. Движок это exeшник принимающий команды, но как мне сделать возможным обмен данными между ними?

Обмен данными между двумя процессами - C++
Добрый день/вечер. Усердно слушал преподавателя на паре, прошуршал много литературы дома, но так и не понял, как заюзать обмен данными...

Обмен данными с ЭБУ через RS-232 - C++
Всем добра, уважаемые форумчане! Это мой первый пост, прошу сильно не ругать:) Итак, поехали: Задача- "поговорить" с ЭБУ через...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
08.08.2013, 22:49
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru