Страница 1 из 1
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 08:17
gulayev
Уважаемые коллеги, прошу разъяснить.
Ардуино Нано. Скетч создан в FLProg. При чтении данных тип String из UART принимается только 64 (символа)байта, остальное обрезается, однако если пробовать читать данные методом Serial.readString() созданном в IDE, то читает все.
Прошу Вас разъяснить как решить это проблему в FLProg ?
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 08:21
Sancho
[ref]gulayev[/ref], Буфер библиотеки Serial для 328 - по 64 байта, Rx, Tx.
Если читать из буфера online, можно получить строку большей длины.
Как читаете Вы - нам неизвестно....
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 08:57
gulayev
Если читаю вот так, то читает все....
Отправлено спустя 54 секунды:
А так, читает только 64 байта...
Отправлено спустя 4 минуты 2 секунды:
Читает все, скетч-Read_Inverter_Shtark_otladka2.....
Отправлено спустя 1 минуту 56 секунд:
Как читать из буфера online средствами FLProg ?
Отправлено спустя 4 минуты 9 секунд:
Пробовал изменять размеры буфера в HardwareSerial.h, ничего не меняется, читает только 64 байта......
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 09:14
Sancho
[ref]gulayev[/ref], Вот так повторить Ваш скетч.
Отправлено спустя 2 минуты 24 секунды:
По Вашему проекту - создайте отдельную плату для получения данных из uart, зациклите её, пока идёт приём. После получения - разбирайте один раз.
Оптимизируйте.
Отправлено спустя 3 минуты 46 секунд:
У Вас регистры МБ дублируются переменными - зачем???
Двойное преобразование - строка- float- строка ?
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 09:27
gulayev
Дублирование-это временно, потом уберу....
Отправлено спустя 5 минут 48 секунд:
Спасибо за пример, вечером буду пробовать....
Отправлено спустя 4 минуты 5 секунд:
Подскажите как зациклить плату пока идет прием?
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 10:03
Sancho
[ref]gulayev[/ref], Примерно так.
Главное - уловите идею....
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 10:50
gulayev
Спасибо..............
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 13:24
DrMario
Для строковых данных использую накопление данных в приемном буфере UART. Такой способ никогда не подводил.
Обрезаются данные при чтении UART
Добавлено: 03 мар 2020, 22:12
gulayev
Перепробовал все, и в цикле, и без цикла......
Принимает максимум 72 байта.............
Написал вот такой пользовательский блок, с ним принимает все, и в цикле, и без цикла......
Прошу поправить, если что делаю не так..............
Отправлено спустя 2 минуты 16 секунд:
Вот предварительная рабочая версия....
Обрезаются данные при чтении UART
Добавлено: 04 мар 2020, 09:17
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
Обрезаются данные при чтении UART
Добавлено: 04 мар 2020, 10:44
gulayev
Спасибо за подсказки..........
Обрезаются данные при чтении UART
Добавлено: 04 мар 2020, 10:49
gulayev
Подскажите как средствами FLProg завести нужный Serial port в пользовательский блок через вход блока? И есть ли возможность изменять таймаут порта средствами FLProg?