Форум РадиоКот https://radiokot.ru/forum/ |
|
Вопрос по работе с библиотекой Serial. https://radiokot.ru/forum/viewtopic.php?f=66&t=196688 |
Страница 1 из 1 |
Автор: | Viper_Snake [ Чт фев 06, 2025 19:31:55 ] |
Заголовок сообщения: | Вопрос по работе с библиотекой Serial. |
Приветствую всех, есть некая железка, под названием датчик озона. Эта железка при работе каждую секунду выплевывает по уарт пачку из 9 байт. Как организована работа с буфером в библиотеке Serial? Надо ли очищать буфер после чтения командой Serial readили это происходит автоматом? Данные я считываю нормально, но есть подозрения в корректности моего подхода. Мой алгоритм следующий: Проверяю, прилетели ли все 9 байт командой available С помощью цикла for вычитываю каждый байт в массив Обрабатываю данные из массива. Добавлено after 2 minutes 57 seconds: Вот что то мне подсказывает, что буфер надо подчищать после этого, но нигде не расписано, как это правильно работает... По крайней мере я не нашел. Аппаратного UART у меня в контроллере нет, городить самопал смысла тоже нет, так что буду пользоваться готовым, но есть нюансы. Добавлено after 1 second: Вот что то мне подсказывает, что буфер надо подчищать после этого, но нигде не расписано, как это правильно работает... По крайней мере я не нашел. Аппаратного UART у меня в контроллере нет, городить самопал смысла тоже нет, так что буду пользоваться готовым, но есть нюансы. Добавлено after : Вот что то мне подсказывает, что буфер надо подчищать после этого, но нигде не расписано, как это правильно работает... По крайней мере я не нашел. Аппаратного UART у меня в контроллере нет, городить самопал смысла тоже нет, так что буду пользоваться готовым, но есть нюансы. |
Автор: | BOB51 [ Чт фев 06, 2025 20:49:01 ] |
Заголовок сообщения: | Re: Вопрос по работе с библиотекой Serial. |
Смотри работу с Serial или на сайте ардуино (раздел описания функций библиотек онлайн) или (более детально) у AlexGyver тут: https://alexgyver.ru/lessons/ (соответствующие разделы уроков и/или *.pdf версию скачать можно) ![]() |
Автор: | Viper_Snake [ Пт фев 07, 2025 16:35:20 ] |
Заголовок сообщения: | Re: Вопрос по работе с библиотекой Serial. |
Там нет ответа на мой вопрос. Нигде не описано, что происходит с данными в буфере после их чтения. |
Автор: | ELECTROS [ Пт фев 07, 2025 17:06:53 ] |
Заголовок сообщения: | Re: Вопрос по работе с библиотекой Serial. |
read читает из очереди с уменьшением размера, если нечего читать то -1, peek - только чтение. available - текущее количество байт в буфере. Впрочем это всё написанно на сайте дурдуины, стоит лишь почитать. |
Автор: | smacorp [ Пт фев 07, 2025 17:12:28 ] |
Заголовок сообщения: | Re: Вопрос по работе с библиотекой Serial. |
Не, нужно очищать обязательно. Особенно в случае аппаратного UART. Это как с банкой - если она полная, больше в неё уже не насыпать, байты будут через край вываливаться. ![]() |
Автор: | BOB51 [ Пт фев 07, 2025 19:13:59 ] |
Заголовок сообщения: | Re: Вопрос по работе с библиотекой Serial. |
При наличии данных в буфере выполняется чтение и последующий анализ данных. Если не соответствует ожидаемому значению - данные игнорируются программой. И так пока все содержимое не будет считает. Буфер работает по принципу - первым вошёл, первым и считан. В принципе "ложный мусор" вполне легко отбрасывается. ![]() Для ардуино есть еще библиотека SoftwareSerial... Правда на МК без аппаратного модуля я не пробовал, но на нанке вполне удобно работает вторым портом. ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |