Обрезаются данные при чтении UART

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Уважаемые коллеги, прошу разъяснить.
Ардуино Нано. Скетч создан в FLProg. При чтении данных тип String из UART принимается только 64 (символа)байта, остальное обрезается, однако если пробовать читать данные методом Serial.readString() созданном в IDE, то читает все.
Прошу Вас разъяснить как решить это проблему в FLProg ?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Обрезаются данные при чтении UART

Сообщение Sancho »

[ref]gulayev[/ref], Буфер библиотеки Serial для 328 - по 64 байта, Rx, Tx.
Если читать из буфера online, можно получить строку большей длины.
Как читаете Вы - нам неизвестно....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Если читаю вот так, то читает все....

Отправлено спустя 54 секунды:
А так, читает только 64 байта...

Отправлено спустя 4 минуты 2 секунды:
Читает все, скетч-Read_Inverter_Shtark_otladka2.....

Отправлено спустя 1 минуту 56 секунд:
Как читать из буфера online средствами FLProg ?

Отправлено спустя 4 минуты 9 секунд:
Пробовал изменять размеры буфера в HardwareSerial.h, ничего не меняется, читает только 64 байта......
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Обрезаются данные при чтении UART

Сообщение Sancho »

[ref]gulayev[/ref], Вот так повторить Ваш скетч.

Отправлено спустя 2 минуты 24 секунды:
По Вашему проекту - создайте отдельную плату для получения данных из uart, зациклите её, пока идёт приём. После получения - разбирайте один раз.
Оптимизируйте.

Отправлено спустя 3 минуты 46 секунд:
У Вас регистры МБ дублируются переменными - зачем???
Двойное преобразование - строка- float- строка ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Дублирование-это временно, потом уберу....

Отправлено спустя 5 минут 48 секунд:
Спасибо за пример, вечером буду пробовать....

Отправлено спустя 4 минуты 5 секунд:
Подскажите как зациклить плату пока идет прием?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Обрезаются данные при чтении UART

Сообщение Sancho »

[ref]gulayev[/ref], Примерно так.
Главное - уловите идею....
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Спасибо..............
Аватара пользователя
DrMario
Лейтенант
Сообщения: 378
Зарегистрирован: 07 ноя 2016, 13:11
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Обрезаются данные при чтении UART

Сообщение DrMario »

Для строковых данных использую накопление данных в приемном буфере UART. Такой способ никогда не подводил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Перепробовал все, и в цикле, и без цикла......
Принимает максимум 72 байта.............
Написал вот такой пользовательский блок, с ним принимает все, и в цикле, и без цикла......
Прошу поправить, если что делаю не так..............

Отправлено спустя 2 минуты 16 секунд:
Вот предварительная рабочая версия....
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Обрезаются данные при чтении UART

Сообщение Sancho »

gulayev писал(а): 03 мар 2020, 22:12 Перепробовал все, и в цикле, и без цикла......
Принимает максимум 72 байта.............
Я не знаю. У меня всё работает, больше 200 как с добрым утром.
Заготовка Atmel_Long_String_RX_calc.flp
Отправлено спустя 13 минут 58 секунд:
И ещё - функция Serial.readString() - та ещё штука.
Можно получить склеенную строку из нескольких, если время между их прилётом менее Serial.setTimeout().....
Не использую совсем.
Ваш проект - плата 2 упрощена
Read_INV_Shtark ver9_рабочая_01.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Спасибо за подсказки..........
gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02 мар 2020, 14:38
Имя: Андрей

Обрезаются данные при чтении UART

Сообщение gulayev »

Подскажите как средствами FLProg завести нужный Serial port в пользовательский блок через вход блока? И есть ли возможность изменять таймаут порта средствами FLProg?
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя