|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
STM32F103 Проблема с UART27.07.2023, 03:09. Показов 2608. Ответов 39
Доброго времени суток! Кроме вопроса "почему" не знаю что сказать, пересылаю значения из ацп в юарт и возникает проблема что происходит перевод строки посередине передачи. Не знаю почему так происходит, может кто поможет советом. Спасибо!
0
|
|
| 27.07.2023, 03:09 | |
|
Ответы с готовыми решениями:
39
UART и STM32F103
|
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
| 27.07.2023, 15:10 [ТС] | |
|
VladimirU, менял, не помогло. Я не через терминал буду пользоваться а софтом написанным под мои задачи. Если отправку делать интервалом 30 мс и больше, все работает, если снизить интервал до 20 мс то появляется данная проблема. Щас буду пробовать с кольцевым буфером.
0
|
|
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
| 27.07.2023, 15:27 [ТС] | |
|
VladimirU, я и написал под свои хотелки. Дополнительная инфа, ошибка происходит в момент изменений значений из 4-х значного в 3-х, 3-х в 2-х итд. Может это из за преобразований в строку в момент отправки. Буду дальше смотреть.
0
|
|
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
||||||
| 27.07.2023, 15:46 [ТС] | ||||||
|
Если не затруднить взгляните на код, правильно ли организован буфер, если да то проблема все еще присутствует.
0
|
||||||
|
|
|||||
| 27.07.2023, 17:58 | |||||
|
AdamBeno,
Добавлено через 1 минуту Добавлено через 3 минуты Либо использовать маркер конца посылки (\r, \n), или лучше нормальный бинарный протокол. Добавлено через 4 минуты Я работал с и текстовыми (SCPI в приборах Agilent, Fluke и т.п.), и с бинарными (HART, ModBus). Текстовые они для ручной работы человека удобнее, а вот для автоматизации в программах - наоборот.
0
|
|||||
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
||
| 27.07.2023, 18:33 [ТС] | ||
|
Rius, Возможно ошибка на стороне приемника, буду проверять. Я выключил все кроме uart, мне кажется невозможно чтобы он строку так передавал.
0
|
||
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,056
|
||||||||
| 27.07.2023, 18:39 | ||||||||
|
В любом случае, проще все же добить нулями старшие разряды и сделать все строки равными по длине. Или, раз уж используется sprintf, заранее выделить поле нужного размера: sprintf(adc_str, "%5hu\n", adcValue); А на счет бинарных протоколов - то не изобретать же его с нуля. А если не с нуля, то нужен "эталонный" прибор, по которому можно удостовериться, что тот же modbus реализован правильно. А прибора такого обычно нет. Да и смысла переусложнять без необходимости тоже нет. Здесь ведь не телеметрию гонять, а отдельные числа. Добавлено через 2 минуты А что используете человеко-читаемый протокол, так это правильно. Сейчас вам важнее возможность отладки и универсальность, чем пропускная способность.
0
|
||||||||
|
|
||||
| 27.07.2023, 18:54 | ||||
|
Но для уверенности в целостности принятых данных этого недостаточно.
0
|
||||
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,056
|
|||
| 27.07.2023, 19:24 | |||
|
Но в простейшем случае никакой специальной проги нет, есть только стандартный терминал. И даже в более сложном случае с прогой, ждать она будет скорее конца строки, чем конца передачи. Потому что конца передачи может и не наступить.
1
|
|||
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 27.07.2023, 21:22 | |
|
AdamBeno, монитор давления на чём написали?
Добавлено через 2 минуты Я вам говорю используйте для разделения 12 бит данных АЦП союз UNION и ещё возьмите один бит для определения вхождения правильной последовательности данных на ваш монитор давления. Добавлено через 1 минуту По сути ваш монитор давления должен быть запрощиком информации с устройства измерения тогда будет хоть какая то синхронизация.
0
|
|
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
||
| 27.07.2023, 21:25 [ТС] | ||
0
|
||
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 27.07.2023, 21:33 | |
|
AdamBeno, ну так если нет исходника терминала то фиг знает что там внутри. Если надумаете писать терминал приёма то советую на C# уж очень быстро везжаешь.
0
|
|
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
||||||
| 27.07.2023, 21:34 [ТС] | ||||||
|
VladimirU, Я пробовал
0
|
||||||
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 27.07.2023, 21:42 | |
|
AdamBeno, ну если знаете Си то и чего нибудь на Visual Studio освоите запросто.
Добавлено через 2 минуты Да кстати если используете платы отладки с USB разъёмом то можно к компу подключать через USB в режиме эмуляции COM.
0
|
|
|
|
|
| 27.07.2023, 21:51 | |
|
VladimirU, судя по скринам, у него там Bluetooth. Это ещё прослойка со своими глюками.
AdamBeno, сниффером посмотрите, что получает программа терминал . COKPOWEHEU, у ТС терминал с непонятными принципами. Я рассчитываю хотя бы на crc. То, что даст надёжно отличить битый пакет о целого.
1
|
|
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
||
| 27.07.2023, 21:54 | ||
|
1
|
||
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
||
| 27.07.2023, 21:56 [ТС] | ||
|
Rius, пробовал без блютуз, через конвертор прямо к uart.
0
|
||
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
| 27.07.2023, 22:21 [ТС] | |
|
Всем спасибо кто помогал, походу приемная сторона виновата, подключился анализатором к uart все ровно идет, даже если выставить интервал 1мс.
0
|
|
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,056
|
||||
| 27.07.2023, 23:11 | ||||
|
0
|
||||
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
| 27.07.2023, 23:39 [ТС] | |
|
0
|
|
|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
| 27.07.2023, 23:56 [ТС] | |
|
Хотел бы признаться и извиниться перед вами всеми за свои ошибки и недосмотр. Rius, был прав на счет Bluetooth, не знаю как так получилось, но я 1000% проверил вчера подключившись напрямую к uart, проблема возникает из за модуля jdy-31. Если подключиться напрямую uart, то все работает. Благодарю всех за ваше терпение и понимание.
1
|
|
| 27.07.2023, 23:56 | |
|
STM32F103 + DMA + UART отправка данных с прерыванием STM32F103 UART лишний байт данных при приеме ломает все После отключения UART, RTC на stm32f103 начинает работать в 2 раза медленнее
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|