|
1 / 1 / 0
Регистрация: 23.07.2013
Сообщений: 15
|
|
Приём большого массива данных через COMport06.12.2013, 19:22. Показов 2056. Ответов 8
Метки нет (Все метки)
Есть МК, по команде с компьютера он в ответ отправляет 32772 байт. Вопрос, как лучше принимать данные, чтоб ничего не потерять. Скорость интерфейса RS232 115200 бод. Стоп бит – 1. Четность – нет.
0
|
|
| 06.12.2013, 19:22 | |
|
Ответы с готовыми решениями:
8
Прием массива в ComPort. Как можно увеличить скорость? Приём данных по ComPort приходит с ошибками STM32F437 + lwIP 1.4.1(netcon), прием большого кол-ва данных |
|
48 / 48 / 22
Регистрация: 18.11.2013
Сообщений: 92
|
|
| 06.12.2013, 22:21 | |
|
а отправляет как, последовательно без пауз? протокол предусматривает начало/конец посылки, таймауты, еще что нибудь, или это просто 32к "плевков" по уарту?)
0
|
|
|
|
|
| 07.12.2013, 02:03 | |
|
...у вас TC неправильный вопрос, правильный - как лучше передавать? Если вы сами реализуете. Хотя бы простейшим протоколом с коррекцией хотя-бы одной ошибки, т.е. наличием CRC.
Если же не сами передаете, а чужое, тогда вопрос "как принимать?" нужно адресовать разработчику той "передачи", а точнее документации, о которой почему-то вы умалчиваете. Ферштеен?
1
|
|
|
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
|
||
| 07.12.2013, 12:54 | ||
|
А еще отправлять 2 стоп бита не мешало бы. Хотя бы потому что частоты приемника и передатчика обязательно чуть-чуть не совпадают. Добавлено через 13 минут А вообще мне случалось была задача принимать много-много мегабайт непрерывным потоком на скорости 921 600 (т.е. в 8 раз выше вашей) через конвертер USB-COM. И вроде явных признаков потерь данных не было. Хотя я даже с размером буфера не заморачивался, оставил как есть по умолчанию. Так что я думаю с вашими какими то 32k боятся особо нечего
1
|
||
|
1 / 1 / 0
Регистрация: 23.07.2013
Сообщений: 15
|
|
| 07.12.2013, 13:52 [ТС] | |
|
По протоколу я принимаю в одном пакете 2 байта - код команды, потом 2 байта - кол-во байтов данных которые будут переданы, потом собственно данные.
Работаю тоже через usb-com конвертер, думаю на него, но не уверен. Да и задача стоит, чтоб работало и через конвертер. В отладке смотрю что он принимает: первый байт команды, потом 3 нулевых байта, потом 2 байт команды... уже видно, что не так как-то всё) И потом я вижу что программа уже всё обработала, а осциллограф ещё показывает, что данные идут. То-есть считывать как-то умудряется нули, между передоваемыми байтами. Через терминальную программу пробую всё нормально. То есть проблема где-то с приёмом. И думаю зря перенесли из темы .NET, тк интересуют тонкости работы с SerialPort, особенно когда работа осуществляется через конвертер usb-com. Добавлено через 1 минуту Да и реализую программу для МК не сам, но как сказал терминальная программа всё принимает как надо, значит проблема где-то у меня с приёмом.
0
|
|
|
|
||||
| 07.12.2013, 14:01 | ||||
|
...терминальная программа не показатель. Условия лабораторные или все же удаленно в условиях длинной линии с помехами?
Пример Получение данных с ридера карт PERCo-IR05
1
|
||||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||
| 09.12.2013, 20:02 | ||
|
Pal4, все придумано до нас: Xmodem для AVR. Контроль четности, пакеты, подтверждение. Простенько и со вкусом.
0
|
||
|
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
|
||
| 10.12.2013, 21:00 | ||
|
На самом деле синхронизация происходит чуть сложнее чем вы написали. Да синхронизация по старт-биту... Но после того как закончится вся предидущая посылка включая стоп-бит. Если новый старт бит придет раньше, то синхронизация не начнется. А такая ситуация например, бывает при непрерывном потоке посылок когда приемник работает чуть медленнее передатчика. Передатчик уже закончил отправку стоп бита, начал следующий старт, а приемник еще отсчитывает предидущий стоп-бит, на старт не реагирует. Вот тут и помогает второй стоп-бит.
0
|
||
| 11.12.2013, 00:16 | ||
|
Не по теме: paskal, синхронизация не происходит по стоп-биту. Она происходит по старт-биту. Приемник по приему стоп-бита лишь проверит - есть там единица или нет и выставит флаг ошибки, если на шине будет единица... Второе - если рассинхронизация такая, что требуется второй бит, то последний принятый бит полезных данных (а может и не только) - принят будет неправильно. А именно вместо последнего бита будет принят стоп-бит, или "ноль". И хорошо, если только один. Так что толку от того, что вы примете байт, но неправильный - тоже не много. Разве что как раз для случаев использования алгоритмов восстановления, о которых я говорил.
0
|
||
| 11.12.2013, 00:16 | |
|
Помогаю со студенческими работами здесь
9
Некорректный вывод данных через comport Delphi 7 Некорректный вывод данных через comport Delphi 7 - Arduino Прием данных через COM порт Приём данных через Bluetooth Прием данных через SerialPort c# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|