|
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 21
|
|
Программирование Com порта в Microsoft Visual Studio 9.0 C++07.12.2010, 13:11. Показов 52630. Ответов 84
Метки нет (Все метки)
Всем привет!
Имеется микроконтроллер AVR ATmega128, на борту которого имеется UART. Требуется написать приложение для Win32 принимающее с МК по RS-232 информацию. Интерфейс 3-х проводной. TxD, RxD и GND. Подключение ПК к МК осуществляется через виртуальный COM8 порт, тоесть через преобразователь USB в COM. В МК зашита программа тупого посыла символа "$" в цикле. Все работает прекрасно(данные приходят). Проверял программой Terminal v1.9b Имеется куча примеров, но не один не работает, нет опыта в программировании на C++. То отсутствует какая то библиотека, то непонятная ошибка. Я понимаю что это просто для знающего, но увы я только знакомлюсь с языком Microsoft Visual Studio 9.0 C++. если на нем этого сделать не возможно, посоветуйте тот на котором это возможно. Подскажите с чего начать, как инициализировать порт, как подключиться, как получить байт? Да, кол-во получаемых байтов неизвестно, точнее пока оно бесконечно. Для начала хотелось бы чтобы программа тупо принимала все что передается в порт и выводила на экран. Добавлено через 20 минут Кто нибудь... помогите подключить C++ к внешнему устройству!!!!
0
|
|
| 07.12.2010, 13:11 | |
|
Ответы с готовыми решениями:
84
Отличие между Microsoft Developer Studio и Microsoft Visual Studio? Как с сайта Microsoft скачать Microsoft Visual Studio 2005 Express Edition? Вылетает Visual Studio 2008 из-за системы управления версиями Microsoft Visual SourceSafe. |
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 07.12.2010, 13:58 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 21
|
|
| 07.12.2010, 13:59 [ТС] | |
|
Sudoki спасибо что не отказываешь в помощи. До завтра! Хорошего вечера!
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|
| 07.12.2010, 14:50 | |
|
Какова скорость (в бодах) передачи информации в COM порт?
0
|
|
|
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 21
|
|
| 08.12.2010, 05:02 [ТС] | |
|
сейчас это не особо важный параметр. Если не ошибаюсь, то его можно просто поменять на двух устройствах, на компе и на контроллере, и теоретически все должно заработать.
Сейчас выбрана скорость 9600 бод. при ознакомлении с литературой нашел информацию что эта скорость дает наименьший процент ошибок, если не ошибаюсь 2%. поэтому мне как новичку для начало сойдет и это. чтобы обойтись по первой без проверок ЦРЦ и прочей целостности данных. Сейчас задача добиться приема и передачи данных. Информации для обмена не много, так что эта скорость будет наиболее приемлемой.
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
||
| 08.12.2010, 09:06 | ||
|
Привет.
Ну так что будем действовать по нашему плану?
0
|
||
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 08.12.2010, 09:12 | |
|
Собственно говоря вот класс который пока реализует следующий функционал:
1. Открывает порт 2. Закрывает порт
0
|
|
|
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 21
|
|
| 08.12.2010, 10:09 [ТС] | |
|
Доверяю тебе в реализации правильности алгоритма. Так как сам этого не могу сделать. Тебе решать. Сейчас воткну твой класс. вопросы задам.
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 08.12.2010, 11:00 | |
|
Вот ресурс в нем все прекрасно описано
http://britter.ru/index.php?do... fset=14900
0
|
|
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
|
| 07.02.2011, 23:21 | |
|
Доброго времени суток Aspiring и Sudoku!
Очень заинтересовал ваш диалог. Сам столкнулся с подобной проблемой. Надо обеспечить прием данных через СОМ-порт. Попытался воссоздать программу, однако при компиляции получаю ошибку: ------ Построение начато: проект: ComPort, Конфигурация: Debug Win32 ------ Компиляция... Code.cpp c:\downloads\comport\comport\code.cpp(5) : fatal error C1083: Не удается открыть файл include: stdafx.h: No such file or directory Журнал построения был сохранен в "file://c:\Downloads\ComPort\ComPort\Debug\Build Log.htm" ComPort - ошибок 1, предупреждений 0 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Где я ошибся? И еще. Ссылка http://britter.ru/index.php?do... fset=14900, к сожалению, уже битая. Где еще можно почерпнуть о работе с СОМ-портом?
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 08.02.2011, 21:39 | |
|
Я выложу что у нас получилось.
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 09.02.2011, 09:52 | |
|
Как и обещал выкладываю что у нас получилось.
0
|
|
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
|
| 09.02.2011, 09:57 | |
|
Спасибо большое, Sudoki!
Попробую вечером прогнать твою программу (работаю в основном по вечерам). Если возникнут вопросы, то можно их будет задать?
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 09.02.2011, 10:22 | |
|
Для этого и есть форум чтобы задавать вопросы
0
|
|
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
|
| 09.02.2011, 22:46 | |
|
Большое спасибо, Sudoki!
Программа без проблем откомпилировалась и запустилась. Буду теперь разбираться, как увязать ее с внешним устройством (к сожалению, от предыдущего разработчика не осталось никаких описаний о формате передаваемых данных).
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
|
| 10.02.2011, 09:57 | |
|
Не забывай про настройки порта:
1. Имя порта 2. Скорость обмена 3. Кол-во стоп бит 4. Бит данных 5. Проверка четности 7. Тайм ауты приема/передачи данных Добавлено через 31 минуту Не туда нажал и отписался от темы
0
|
|
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
||||||
| 16.02.2011, 22:01 | ||||||
|
Добрый день, Sudoku!
Это снова я! Разреши еще потревожить. ![]() Подскажи, пожалуйста, вот какую вещь. У меня данные передаются в ПК от СОМ-порта пакетами постоянной длинны. Формат пакета передаваемых в ПК данных и адреса данных в аппаратуре приведены ниже. № Данные, Адрес в аппаратуре Порт MCPU Примечания, байта код операции с данными 1 0xE6 Синхроплследовательность 2 0xE6 3 0x1C 28 десятичных. Длинна пакета данных 4 N0, мл. байт 0 Порт C 5 N0, ст. байт 0 Порт А Обнулить разряды 7-1. 6 T0, мл. байт 1 Порт C 7 T0, ст. байт 1 Порт А Обнулить разряды 7,6 8 N1, мл. байт 2 Порт C 9 N1, ст. байт 2 Порт А Обнулить разряды 7-1. 10 T1, мл. байт 3 Порт C 11 T1, ст. байт 3 Порт А Обнулить разряды 7,6 12 N2 мл. байт 4 Порт C 13 N2 ст. байт 4 Порт А Обнулить разряды 7-1. 14 T2 мл. байт 5 Порт C 15 T2 ст. байт 5 Порт А Обнулить разряды 7,6 16 N3 мл. байт 6 Порт C 17 N3 ст. байт 6 Порт А Обнулить разряды 7-1. 18 T3 мл. байт 7 Порт C 19 T3 ст. байт 7 Порт А Обнулить разряды 7,6 20 N4 мл. байт 8 Порт C 21 N4 ст. байт 8 Порт А Обнулить разряды 7-1. 22 T4 мл. байт 9 Порт C 23 T4 ст. байт 9 Порт А Обнулить разряды 7,6 24 N5 мл. байт A Порт C 25 N5 ст. байт A Порт А Обнулить разряды 7-1. 26 T5 мл. байт B Порт C 27 T5 ст. байт B Порт А Обнулить разряды 7,6 28 W0 C Порт C 29 W1 D Порт C 30 W2 E Порт C 31 W3 F Порт C Сейчас у меня идет все до кучи. Т.е. данные я принимаю и сохраняю. Однако при открытии получается каша. В старой программе выборка необходимых байт была реализована следующим образом:
Я правильно понимаю, что в какой-то момент времени в буфере находится целый кадр. Я из него могу выбрать интересующие меня байты buf[], присвоить их новой переменной df.RegWind[] и далее работать уже с ней? Как лучше сделать, чтобы нужный мне кадр (с которым я работаю в настоящий момент времени) "не затерся" последующим? Заранее спасибо
0
|
||||||
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
|
| 16.02.2011, 22:09 | |
|
Исказилась таблица с форматом данных,поэтому решил приложить ее в виде doc-файла.
0
|
|
|
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
|
||||||
| 16.02.2011, 22:43 | ||||||
|
Добрый вечер!
Добавить пару переменных да и функцию обработки. Заранее говорю что не компилировал писал в блокноте.
Это алгоритм на вскидку его еще надо обдумывать. Вдруг пакет будет не длиной 31 байт а потеряется где то пару байт. И тогда мы можем потерять следующий за ним. Я пару лет назад делал подобное. Алгоритм на другом винте лежит.
0
|
||||||
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
|
| 17.02.2011, 10:56 | |
|
Спасибо, Sudoki, за подсказку!
Вечером поколдую!
0
|
|
|
2 / 2 / 0
Регистрация: 07.02.2011
Сообщений: 25
|
|
| 26.02.2011, 23:54 | |
|
Добрый вечер, Sudoki!
Появилась свободная минутка, решил поглубже зарыться в код представленной тобой программы. Можешь провести небольшой ликбез. Вот несколько вопросов: 1) Почему ты сделал два раздельных файла CPort и ComPort (честно говоря,я сначала предполагал, что один из них будет классом, а второй файлом с кодом)? 2) Форма программы (кнопки, меню и проч.) реализована в тексте CPort.cpp, хотя отдельно в Solution Explorer я файл формы с расширением *.cs (условно говоря Form1.cs) я не вижу. Я не там ищу или через код удобнее реализовывать? (просто возникает вопрос, как это отредактировать) 3) Функцию обработки сигналов с СОМ-порта и сохранение их на жесткий диск лучше реализовать отдельным файлом *.срр и потом присоединить к проекту или добавить в существующий текст программ? Заранее спасибо, Bedouin
0
|
|
| 26.02.2011, 23:54 | |
|
Microsoft Visual Studio microsoft visual studio 2005 Microsoft Visual Studio 2010 Microsoft visual studio 2010 Чем отличается Microsoft Visual C++ 2010 Express от Visual Studio 2010 Ultimate Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|