программный UART

Buzoff
Offline
Зарегистрирован: 03.04.2018

здравствуйте.

использую программный UART, к нему подключен блютуз, скорость 57600.

данные отправляет нормально, а принимать нормально не может (принятое, отправляю на апаратный и смотрю в сериал порте), приходит абра-котабра. если слать один символ, то принимает почти нормально (иногда проскакивает что-то не то), а если отправлять сразу 2 и более, то несколько первых символов проходит норм, а остальные что попало.

в описании к библиотеке  SoftwareSerial.h   указано, что максимальная скорость 57600, но что-то ардуина не тянет (16МГц).

подскажите, пожалуйста, что может быть и как это можно исправить или обойти?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

уменьшить скорость и попробовать.

Buzoff
Offline
Зарегистрирован: 03.04.2018

DIYMan пишет:

уменьшить скорость и попробовать.

пробовал на 38400, все работает. но нужна именно 57600

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Buzoff пишет:

DIYMan пишет:

уменьшить скорость и попробовать.

пробовал на 38400, все работает. но нужна именно 57600

тогда переходите на аппаратный UART, ибо программный на высоких скоростях - не алё, сами убедились.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Дак а никто не обещал 57600 на СофтСериале. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

там и 19200 то много

Buzoff
Offline
Зарегистрирован: 03.04.2018

DetSimen пишет:

Дак а никто не обещал 57600 на СофтСериале. 

в описании библиотеки написано вроде.

 

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Buzoff пишет:

DetSimen пишет:

Дак а никто не обещал 57600 на СофтСериале. 

в описании библиотеки написано вроде.

 

 

поговорку про забор и дрова - знаете? ;)

Buzoff
Offline
Зарегистрирован: 03.04.2018

DIYMan пишет:

Buzoff пишет:

DetSimen пишет:

Дак а никто не обещал 57600 на СофтСериале. 

в описании библиотеки написано вроде.

 

 

поговорку про забор и дрова - знаете? ;)

знаю)

ясно буду разбираться с 

STM32

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Плохо читали . Там сказано про отправку.

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

А нельзя ли поменять местами? От блютуза в апаратный, а к компу софтовфый на 38400.

Buzoff
Offline
Зарегистрирован: 03.04.2018

так а смысл, у меня на софтовом и прием и передача. и скорость должна быть 57600, на меньшей скорости не успевает передавать пакеты, между которыми есть небольшие паузы, которые для скорости 38400 очень короткие.

Buzoff
Offline
Зарегистрирован: 03.04.2018

а в чем прикол писать что отправка 57600, а прием не известно? прием-передача вроде всегда идет на одной скорости.

выдержки с описания библиотеки:

С помощью библиотеки SoftwareSerial можно настроить несколько последовательных портов, работающих на скорости до 115200 бит/с.

на Arduino/Genuino 101 максимальная скорость передачи данных через RX-контакт составляет 57600 бит/с.

 

 

Buzoff
Offline
Зарегистрирован: 03.04.2018

может имеет значение выбранные пины для софтсериал?

у меня 2 и 3, рх и тх

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Разницы в пинах нет. Просто имейте в виду, что есть ограничения, и с ними следует считаться. И либо обходиться тем, что есть (например, аппаратный - на прием, а программный - на передачу), либо выбирать контроллер, в котором более одного аппаратного.

vlad072
Offline
Зарегистрирован: 01.08.2017

Причина не в скорости, у меня на 115200 с SIM800 работает,просто пока проект на макетке и не будет окончательной версии скетча, для перестраховки стоит 57600. Работает уже несколько мецяцев 24/7 с перерывами на перезаливку обновлённого скетча, обмен очень активный, всё норм.

Как вариант у Вас РАЗНЫЕ скорости на аппаратном и программном портах.

Buzoff
Offline
Зарегистрирован: 03.04.2018

vlad072 пишет:

Причина не в скорости, у меня на 115200 с SIM800 работает,просто пока проект на макетке и не будет окончательной версии скетча, для перестраховки стоит 57600. Работает уже несколько мецяцев 24/7 с перерывами на перезаливку обновлённого скетча, обмен очень активный, всё норм.

Как вариант у Вас РАЗНЫЕ скорости на аппаратном и программном портах.

планировал сделать на софтовом фиксированную 57600, а на апаратном разную (9600 19200 38400 и 57600)

но тестировал с одинаковой скоростью 57600 на обох сериал.

vlad072
Offline
Зарегистрирован: 01.08.2017

Для экксперемента между чтениями байтов поставьте delay(1)