|
21 / 14 / 7
Регистрация: 15.07.2018
Сообщений: 50
|
|
STM32F103 Проблема с UART27.07.2023, 03:09. Показов 2732. Ответов 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
|
||
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
||||||||
| 27.07.2023, 18:39 | ||||||||
|
В любом случае, проще все же добить нулями старшие разряды и сделать все строки равными по длине. Или, раз уж используется sprintf, заранее выделить поле нужного размера: sprintf(adc_str, "%5hu\n", adcValue); А на счет бинарных протоколов - то не изобретать же его с нуля. А если не с нуля, то нужен "эталонный" прибор, по которому можно удостовериться, что тот же modbus реализован правильно. А прибора такого обычно нет. Да и смысла переусложнять без необходимости тоже нет. Здесь ведь не телеметрию гонять, а отдельные числа. Добавлено через 2 минуты А что используете человеко-читаемый протокол, так это правильно. Сейчас вам важнее возможность отладки и универсальность, чем пропускная способность.
0
|
||||||||
|
|
||||
| 27.07.2023, 18:54 | ||||
|
Но для уверенности в целостности принятых данных этого недостаточно.
0
|
||||
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||
| 27.07.2023, 19:24 | |||
|
Но в простейшем случае никакой специальной проги нет, есть только стандартный терминал. И даже в более сложном случае с прогой, ждать она будет скорее конца строки, чем конца передачи. Потому что конца передачи может и не наступить.
1
|
|||
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,717
|
|
| 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,717
|
|
| 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,717
|
|
| 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,717
|
||
| 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
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
||||
| 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 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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|