Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 18.03.2020
Сообщений: 62

Проблемы с передачей данных

22.03.2022, 11:44. Показов 2636. Ответов 34

Студворк — интернет-сервис помощи студентам
Здравствуйте, возникла проблема, которую не могу решить больше недели. Требуется настроить передачу данных с устройством по особому протоколу. Взял два blue pill, дабы сэмулировать этот процесс. Передача данных происходит через UART на скорости 4800 бот. Пример посылки протокола приведен на изображении. Суть проблемы: пытаюсь гонять два числа по данному протоколу, но в какие-то промежутки времени приходящие числа коверкаются( например: я отправляю 239,0, а приходит 20,0 потом -5,0 или 21.9( отправляю всегда одно и тоже число)). Данные ,которые ко мне приходят я закидываю в массив, которые после обрабатываю. Есть признаки начала посылки и признак концы, я их конечно же проверяю.
Миниатюры
Проблемы с передачей данных  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2022, 11:44
Ответы с готовыми решениями:

STM32L011F3 - USART2 проблемы с передачей.
Доброго дня всем. Прошу помочь разобраться. Так как для L0 нет SPL , решил попробовать куб. Инициализирую UART2, выведенный на PA2,...

ESP32 проблемы с передачей массива более 127 байт по шине I2C
Здравствуйте, в данном коде на ESP32 по i2с можно передать только 127 байт из массивов Program_Data_IC_1 и Param_Data_IC_1, подскажите где...

Проблема с передачей данных
Здравствуйте Нужна помощь по следующему вопросу: Есть прибор с контроллером (марку я не знаю). при включении питания девайса МК...

34
22.03.2022, 21:30
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ан нет, не натягивается.
очень даже натягивается
это оскорбления конкретного продукта, искажение его имени
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
не обращено к участникам форума
а к тем кто использует HAL?

0
0 / 0 / 0
Регистрация: 18.03.2020
Сообщений: 62
22.03.2022, 21:34  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
У него вообще нет обработки принятой строки. Я так понял, он пытается сначала поймать хоть что-то, начинающееся на stx и кончающееся на etx, а потом, когда оно заработает, добавлять проверки внутрь этого if'а.

Вы пытаетесь быстро-быстро стянуть данные у прерывания пока оно не заметило? Плохая идея: у прерывания права выше.
А как мне тогда поступить? Мне нужен этот буфер для дальнейшей обработки, человек выше предлагал сделать двойную буферизацию, но я даже не могу представить как мне это сделать. Так как мне для обработки нужен сам буфер и его длина посылки. Видимо из-за того, что программа не успевает обработать посылку до приема следующей, у меня и коверкаются значения.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
22.03.2022, 21:52
Цитата Сообщение от Briergo Посмотреть сообщение
А как мне тогда поступить?
берешь буфер и в прерывании складываешь символ в него буфер, когда придет символ окончания строки, перекладываешь его в другой буфер, и не торопясь обрабатываешь, а в прерывании в первый буфер уже пишется новая строка
0
 Аватар для COKPOWEHEU
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
22.03.2022, 22:25

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
очень даже натягивается
это оскорбления конкретного продукта, искажение его имени
С каких это пор у нас ST-HAL стал на форум писать?!
Цитата Сообщение от ValeryS Посмотреть сообщение
а к тем кто использует HAL?
Цитату в студию! Именно про тех, ко использует.


Цитата Сообщение от Briergo Посмотреть сообщение
А как мне тогда поступить? Мне нужен этот буфер для дальнейшей обработки, человек выше предлагал сделать двойную буферизацию, но я даже не могу представить как мне это сделать.
Когда получате ETX, а предыдущая посылка уже обработана, копируете строку из буфера UART во внешний буфер. Если предыдущая не обработана, надо как-то сообщить, что передатчик шлет данные слишком часто.
Хотя это зависит от сложности обработки, может там прямо в прерывании парсить можно.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
23.03.2022, 06:33
Есть ещё DMA FIFO.
0
 Аватар для COKPOWEHEU
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
23.03.2022, 09:44
Цитата Сообщение от VladimirU Посмотреть сообщение
Есть ещё DMA FIFO.
Оно где есть? Потому что в f103, которая у ТС на bluepill, я ничего похожего в рефмане не нашел. Может, просто называется как-то по-хитрому?
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 940
Записей в блоге: 17
23.03.2022, 10:15
а почему бы не сделать просто кольцевой буфер, и как советовал COKPOWEHEU по получению символа конца пакета - запускать обработчик сообщения.. при этом кольцевой буфер заполняется дальше...

вообще очень плохое описание задачи :-(
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
23.03.2022, 12:39
COKPOWEHEU, DMA точно в stm32f103 есть.
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 940
Записей в блоге: 17
23.03.2022, 12:48
Цитата Сообщение от VladimirU Посмотреть сообщение
DMA точно в stm32f103 есть
вопрос был про FIFO скорее всего
0
 Аватар для COKPOWEHEU
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
23.03.2022, 13:13
Цитата Сообщение от VladimirU Посмотреть сообщение
COKPOWEHEU, DMA точно в stm32f103 есть.
Да DMA-то конечно есть, но он не FIFO. А про FIFO упоминания только в разделах по FSMC, USB-OTG, CAN и еще какой-то периферии.
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 940
Записей в блоге: 17
23.03.2022, 13:15
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Да DMA-то конечно есть, но он не FIFO.
кольцевой буфер ?
0
 Аватар для COKPOWEHEU
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
23.03.2022, 17:13
Да, FIFO это кольцевой буфер. Его можно реализовать программно на обычной памяти, но некоторая периферия имеет и собственный аппаратный.
DMA в F103 это работа с обычным буфером, без возможности дописывания с какого-либо конца.
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 940
Записей в блоге: 17
23.03.2022, 19:47
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
DMA в F103 это работа с обычным буфером, без возможности дописывания с какого-либо конца.
думаете не получится ?
Circular mode
Circular mode is available to handle circular buffers and continuous data flows (e.g. ADC
scan mode). This feature can be enabled using the CIRC bit in the DMA_CCRx register.
When circular mode is activated, the number of data to be transferred is automatically
reloaded with the initial value programmed during the channel configuration phase, and the
DMA requests continue to be served.
0
 Аватар для COKPOWEHEU
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
23.03.2022, 19:56
Цитата Сообщение от ВитГо Посмотреть сообщение
думаете не получится ?
Circular mode
Вот про эту штуку забыл, хотя и натыкался когда с АЦП работал.
Но это не FIFO, оно не проверяет пересечение головы и хвоста, вообще знать не знает про хвост.
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 940
Записей в блоге: 17
23.03.2022, 20:13
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но это не FIFO, оно не проверяет пересечение головы и хвоста, вообще знать не знает про хвост.
это да.. размер буфера надо с запасом брать..
и кстати, надо еще как то ведь определять получение конца пакета чтобы начать его обрабатывать... вернее я пока сильно не думал, может читать текущий указатель периодически или по прерыванию получения атома данных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2022, 20:13

ATmega16 проблема с передачей данных по UART
Хочу настроить связь ATmega16 и обычного компьютера, через UART. Для работы с UART использовал микросхему MAX232 и COM-порт компьютера...

Измерительное устройство на ATMega64 с передачей данных на ПК
Допустим у меня есть датчик (например давления).Которое посылает на АЦП сигнал.АЦП каждые пол минуты посылает сигнал через RS-232 на комп...

Проблемы с передачей данных по сети
Всем привет. Коротко, что пытаюсь сделать. 1. Читаю бинарный файл картинку QFile...

Проблемы с передачей данных с помощью SmtpClient
Здравствуйте уважаемые специалисты. Столкнулся с неизвестной ошибкой. Программа просто завершается и все. Причину выловить удалось....

Проблемы с передачей пакетов
Здравствуйте! Нужна помощь, в чем причина, почему не отправляются и не принимаются пакеты?


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru