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

Вопросы от новичков
Ответить
jackal
Рядовой
Сообщения: 6
Зарегистрирован: 14.03.2023{, 22:19}
Репутация: 1
Имя: Кирилл

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

#1

Сообщение jackal » 14.03.2023{, 22:30}

Доброго времени суток!

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

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

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

Проверил вот так:
Вложения
изображение_2023-03-14_230147799.png
изображение_2023-03-14_230147799.png (10.94 КБ) 1156 просмотров

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#2

Сообщение rw6cm » 15.03.2023{, 09:56}

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 КБ) 1086 просмотров
int_PC_UART.flp
(116.23 КБ) 63 скачивания
Win10-64, FLProg (portable)

jackal
Рядовой
Сообщения: 6
Зарегистрирован: 14.03.2023{, 22:19}
Репутация: 1
Имя: Кирилл

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

#3

Сообщение jackal » 15.03.2023{, 12:39}

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

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

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

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#4

Сообщение rw6cm » 15.03.2023{, 13:08}

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

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

jackal
Рядовой
Сообщения: 6
Зарегистрирован: 14.03.2023{, 22:19}
Репутация: 1
Имя: Кирилл

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

#5

Сообщение jackal » 15.03.2023{, 18:28}

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

Abay1
Рядовой
Сообщения: 31
Зарегистрирован: 01.03.2022{, 08:03}
Репутация: 0
Имя: Александр

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

#6

Сообщение Abay1 » 16.03.2023{, 09:59}

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

MM33
Рядовой
Сообщения: 41
Зарегистрирован: 23.06.2021{, 11:52}
Репутация: 7
Имя: Михаил

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

#7

Сообщение MM33 » 16.03.2023{, 14:57}

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

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

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

#8

Сообщение Ingwar » 16.03.2023{, 16:27}

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

jackal
Рядовой
Сообщения: 6
Зарегистрирован: 14.03.2023{, 22:19}
Репутация: 1
Имя: Кирилл

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

#9

Сообщение jackal » 17.03.2023{, 09:24}

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

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

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

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#10

Сообщение rw6cm » 17.03.2023{, 11:28}

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

koba
Рядовой
Сообщения: 8
Зарегистрирован: 11.11.2023{, 02:48}
Репутация: 0
Имя: 4l1kyt

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

#11

Сообщение koba » 11.11.2023{, 16:54}

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

Ответить

Вернуться в «Начинающим»