Страница 1 из 1

Прием из UART (получить integer)

Добавлено: 14.03.2023{, 22:30}
jackal
Доброго времени суток!

Отправляю с компа на ардуино по UART число, а получить ардуинкой как integer не получается.
Подскажите как преобразовать ардуиной полученные данные в integer

Отправлено спустя 32 минуты 17 секунд:
Разобрался с помощью вот этого костыля viewtopic.php?f=63&t=8285&p=118605&hilit=uart#p118605

Из-за того что 3 года назад не смог решить этот вопрос - бросил нафиг эту ардуину. Но сейчас не выдержал

Проверил вот так:

Прием из UART (получить integer)

Добавлено: 15.03.2023{, 09:56}
rw6cm
jackal писал(а):
14.03.2023{, 23:03}
Отправляю с компа на ардуино по UART число, а получить ардуинкой как integer
можно проще.
2023_03_15_09_50_06_FLProg_8.1.0.png
2023_03_15_09_50_06_FLProg_8.1.0.png (6.81 КБ) 1165 просмотров
int_PC_UART.flp
(116.23 КБ) 65 скачиваний

Прием из UART (получить integer)

Добавлено: 15.03.2023{, 12:39}
jackal
rw6cm писал(а):
15.03.2023{, 09:56}
можно проще.
Отлично, попробую.
Видимо вся соль в цепочке начиная от таймера. Я раньше пытался без него, естественно не получалось.

Единственное не могу понять что именно сбрасывает "res", точнее что он отсекает сбросом.

По справке есть галка очистка буфера при приеме новых данных. Получается каждый символ, в двухзначном числе, является новыми данными?

Прием из UART (получить integer)

Добавлено: 15.03.2023{, 13:08}
rw6cm
jackal писал(а):
15.03.2023{, 12:39}
Единственное не могу понять что именно сбрасывает "res", точнее что он отсекает сбросом.

Он обнуляет буфер UART. стирает в нем все.
Т.е блок UART принимает любую информацию посимвольно. Без буфера мы сможем принять только один символ.
Если использовать буфер то надо знать где начало/конец пакета символов,
и вовремя сбрасывать его, чтобы небыло месива или переполнения буфера.
После каждого принятого символа на выходе А проходит импульс в один цикл.
Таймер удерживает высокий уровень между этими импульсами, пока не будет более длительная пауза.
Которая и будет означать, что пакет закончен и можно сбросить буфер для принятия нового пакета.

Прием из UART (получить integer)

Добавлено: 15.03.2023{, 18:28}
jackal
rw6cm писал(а):
15.03.2023{, 13:08}
После каждого принятого символа на выходе А проходит импульс в один цикл.
Таймер удерживает высокий уровень между этими импульсами, пока не будет более длительная пауза.
Спасибо большое ! Все встало на свои места и логика стала понятна!

Прием из UART (получить integer)

Добавлено: 16.03.2023{, 09:59}
Abay1
jackal писал(а):
14.03.2023{, 23:03}
Отправляю с компа на ардуино по UART число ...
А каким софтом со стороны Windows реализовываете данную задачу?
Если не секрет ))

Прием из UART (получить integer)

Добавлено: 16.03.2023{, 14:57}
MM33
Интересная тема .
Как скормить показания датчика через ардуино-UART в EXEL примеры и статьи есть . А вот как скормить из EXEL данные в массив для дальнейшего использования не нашел.
Видимо приведенный пример может помочь в этой задаче , только не понятно как файлу EXEL объяснить,что ему нужно содержимое гнать через UART в ардуино.

Прием из UART (получить integer)

Добавлено: 16.03.2023{, 16:27}
Ingwar
MM33 писал(а):
16.03.2023{, 14:57}
только не понятно как файлу EXEL объяснить,что ему нужно содержимое гнать через UART в ардуино.
Начните с Visual Basic.

Прием из UART (получить integer)

Добавлено: 17.03.2023{, 09:24}
jackal
Abay1 писал(а):
16.03.2023{, 09:59}
А каким софтом со стороны Windows реализовываете данную задачу?
Если не секрет ))
Да просто через монитор порта в IDE, пробовал сторонние терминалы, но они избыточны в плане функционала.

Правда есть проблема - когда закрываешь терминал при работающей ардуине, видимо отсылается какие-то данные и ардуино из них находит число "0" и все выключает. Можно подсоединить дисплей и посмотреть что там приходит, попозже проверю.

Отправлено спустя 8 минут 22 секунды:
rw6cm писал(а):
15.03.2023{, 09:56}
можно проще.
Проверил - замечательно работает!

Прием из UART (получить integer)

Добавлено: 17.03.2023{, 11:28}
rw6cm
jackal писал(а):
17.03.2023{, 09:33}
Правда есть проблема - когда закрываешь терминал при работающей ардуине, видимо отсылается какие-то данные и ардуино из них находит число "0" и все выключает.
Есть такое, в основном при подключении терминала, но возможно и при отключении, как программы, так и самого кабеля.
чтобы этого избежать, используйте отдельный UART. т.к встроенный заточен для прошивки и имеет свои нюансы.

Прием из UART (получить integer)

Добавлено: 11.11.2023{, 16:54}
koba
приветствую всех , кто может помочь , в общем ме нужна принимат данные из UART с контрольной суммои , после блока прием из UART подключаю блок UART_to_4byte
из пользовательских блоков , все конечно работает но при скоростном приема данных сигналы перескакивает (я не имею в виду скорость передача данных 9600) а само скорость интенсивности сигналов , очевидно без етого блока (UART_to_4byte ) скорост нормалная , может я что то нетак делаю напишите пожалуйста как это исправит