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

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

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

#1

Сообщение gulayev » 03.03.2020{, 08:17}

Уважаемые коллеги, прошу разъяснить.
Ардуино Нано. Скетч создан в FLProg. При чтении данных тип String из UART принимается только 64 (символа)байта, остальное обрезается, однако если пробовать читать данные методом Serial.readString() созданном в IDE, то читает все.
Прошу Вас разъяснить как решить это проблему в FLProg ?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#2

Сообщение Sancho » 03.03.2020{, 08:21}

gulayev, Буфер библиотеки Serial для 328 - по 64 байта, Rx, Tx.
Если читать из буфера online, можно получить строку большей длины.
Как читаете Вы - нам неизвестно....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02.03.2020{, 14:38}
Репутация: 0
Имя: Андрей

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

#3

Сообщение gulayev » 03.03.2020{, 08:46}

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

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

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

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

Отправлено спустя 4 минуты 9 секунд:
Пробовал изменять размеры буфера в HardwareSerial.h, ничего не меняется, читает только 64 байта......
Вложения
Read_INV_Shtark ver5.flp
(710.96 КБ) 53 скачивания
Read_Inverter_Shtark_otladka_2.ino
(389 байт) 48 скачиваний

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#4

Сообщение Sancho » 03.03.2020{, 09:08}

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

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

Отправлено спустя 3 минуты 46 секунд:
У Вас регистры МБ дублируются переменными - зачем???
Двойное преобразование - строка- float- строка ?
Вложения
Заготовка Atmel_Long_String.flp
(48.29 КБ) 52 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02.03.2020{, 14:38}
Репутация: 0
Имя: Андрей

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

#5

Сообщение gulayev » 03.03.2020{, 09:18}

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

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

Отправлено спустя 4 минуты 5 секунд:
Подскажите как зациклить плату пока идет прием?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#6

Сообщение Sancho » 03.03.2020{, 10:03}

gulayev, Примерно так.
Главное - уловите идею....
Вложения
Заготовка Atmel_Long_String_RX.flp
(112.24 КБ) 49 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02.03.2020{, 14:38}
Репутация: 0
Имя: Андрей

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

#7

Сообщение gulayev » 03.03.2020{, 10:50}

Спасибо..............

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

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

#8

Сообщение DrMario » 03.03.2020{, 13:24}

Для строковых данных использую накопление данных в приемном буфере UART. Такой способ никогда не подводил.
Вложения
UART Buff.PNG
UART Buff.PNG (5.91 КБ) 657 просмотров

gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02.03.2020{, 14:38}
Репутация: 0
Имя: Андрей

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

#9

Сообщение gulayev » 03.03.2020{, 22:09}

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

Отправлено спустя 2 минуты 16 секунд:
Вот предварительная рабочая версия....
Вложения
Read_INV_Shtark ver9_рабочая.flp
(730.51 КБ) 43 скачивания
Read_String_for_serial_0_nano_v3_(CODE).ubi
(17.31 КБ) 44 скачивания

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#10

Сообщение Sancho » 04.03.2020{, 09:03}

gulayev писал(а):
03.03.2020{, 22:12}
Перепробовал все, и в цикле, и без цикла......
Принимает максимум 72 байта.............
Я не знаю. У меня всё работает, больше 200 как с добрым утром.
Заготовка Atmel_Long_String_RX_calc.flp
(154.64 КБ) 46 скачиваний
Отправлено спустя 13 минут 58 секунд:
И ещё - функция Serial.readString() - та ещё штука.
Можно получить склеенную строку из нескольких, если время между их прилётом менее Serial.setTimeout().....
Не использую совсем.
Ваш проект - плата 2 упрощена
Read_INV_Shtark ver9_рабочая_01.flp
(627.46 КБ) 48 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02.03.2020{, 14:38}
Репутация: 0
Имя: Андрей

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

#11

Сообщение gulayev » 04.03.2020{, 10:44}

Спасибо за подсказки..........

gulayev
Рядовой
Сообщения: 10
Зарегистрирован: 02.03.2020{, 14:38}
Репутация: 0
Имя: Андрей

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

#12

Сообщение gulayev » 04.03.2020{, 10:49}

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

Ответить

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