Официальный сайт компании Arduino по адресу arduino.cc
программный UART
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 22/04/2019 - 09:46
здравствуйте.
использую программный UART, к нему подключен блютуз, скорость 57600.
данные отправляет нормально, а принимать нормально не может (принятое, отправляю на апаратный и смотрю в сериал порте), приходит абра-котабра. если слать один символ, то принимает почти нормально (иногда проскакивает что-то не то), а если отправлять сразу 2 и более, то несколько первых символов проходит норм, а остальные что попало.
в описании к библиотеке SoftwareSerial.h указано, что максимальная скорость 57600, но что-то ардуина не тянет (16МГц).
подскажите, пожалуйста, что может быть и как это можно исправить или обойти?
уменьшить скорость и попробовать.
уменьшить скорость и попробовать.
пробовал на 38400, все работает. но нужна именно 57600
уменьшить скорость и попробовать.
пробовал на 38400, все работает. но нужна именно 57600
тогда переходите на аппаратный UART, ибо программный на высоких скоростях - не алё, сами убедились.
Дак а никто не обещал 57600 на СофтСериале.
там и 19200 то много
Дак а никто не обещал 57600 на СофтСериале.
в описании библиотеки написано вроде.
Дак а никто не обещал 57600 на СофтСериале.
в описании библиотеки написано вроде.
поговорку про забор и дрова - знаете? ;)
Дак а никто не обещал 57600 на СофтСериале.
в описании библиотеки написано вроде.
поговорку про забор и дрова - знаете? ;)
знаю)
ясно буду разбираться с
STM32
Плохо читали . Там сказано про отправку.
А нельзя ли поменять местами? От блютуза в апаратный, а к компу софтовфый на 38400.
так а смысл, у меня на софтовом и прием и передача. и скорость должна быть 57600, на меньшей скорости не успевает передавать пакеты, между которыми есть небольшие паузы, которые для скорости 38400 очень короткие.
а в чем прикол писать что отправка 57600, а прием не известно? прием-передача вроде всегда идет на одной скорости.
выдержки с описания библиотеки:
С помощью библиотеки SoftwareSerial можно настроить несколько последовательных портов, работающих на скорости до 115200 бит/с.
на Arduino/Genuino 101 максимальная скорость передачи данных через RX-контакт составляет 57600 бит/с.
может имеет значение выбранные пины для софтсериал?
у меня 2 и 3, рх и тх
Разницы в пинах нет. Просто имейте в виду, что есть ограничения, и с ними следует считаться. И либо обходиться тем, что есть (например, аппаратный - на прием, а программный - на передачу), либо выбирать контроллер, в котором более одного аппаратного.
Причина не в скорости, у меня на 115200 с SIM800 работает,просто пока проект на макетке и не будет окончательной версии скетча, для перестраховки стоит 57600. Работает уже несколько мецяцев 24/7 с перерывами на перезаливку обновлённого скетча, обмен очень активный, всё норм.
Как вариант у Вас РАЗНЫЕ скорости на аппаратном и программном портах.
Причина не в скорости, у меня на 115200 с SIM800 работает,просто пока проект на макетке и не будет окончательной версии скетча, для перестраховки стоит 57600. Работает уже несколько мецяцев 24/7 с перерывами на перезаливку обновлённого скетча, обмен очень активный, всё норм.
Как вариант у Вас РАЗНЫЕ скорости на аппаратном и программном портах.
планировал сделать на софтовом фиксированную 57600, а на апаратном разную (9600 19200 38400 и 57600)
но тестировал с одинаковой скоростью 57600 на обох сериал.
Для экксперемента между чтениями байтов поставьте delay(1)