Как работает Serial и его буфер

iliailia1212
Offline
Зарегистрирован: 16.01.2015

Как известно у Serial есть буфер на входные данные и которые нужно отправить, про входные всё более менее понятно, данные приходят Arduina их записывает в буфер, я правильно понимаю что он записывает во входной буфер даже во время delay? (1)

Буфер для данные ждущие отправку, нужен я так понимаю для того что бы программа не стояла и не ждала пока данные будут отправлены (в том случаи когда данные отправляются быстрее чем скорость Serial), но вопрос в том когда удаляются данные и из буфера, в момент когда они просто отправлены, то есть если на втором конце Serial порта не чего будет буфер всё равно будет освобождаться? (2)

На Arduino Mega для каждого Serial порта свой буфер или он общий на все Serial ?

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

iliailia1212 пишет:

На Arduino Mega для каждого Serial порта свой буфер или он общий на все Serial ?

у каждого свой.  найди файл HardwareSerial.h и посмотри

iliailia1212
Offline
Зарегистрирован: 16.01.2015

DetSimen пишет:

iliailia1212 пишет:

На Arduino Mega для каждого Serial порта свой буфер или он общий на все Serial ?

у каждого свой.  найди файл HardwareSerial.h и посмотри

Спасибо за ответ, там ещё определяется размер буфера, его только там можно изменить из скетча его не как нельзя изменить?

Logik
Offline
Зарегистрирован: 05.08.2014

на все вопросы -  да, верно

b707
Offline
Зарегистрирован: 26.05.2017

iliailia1212 пишет:

там ещё определяется размер буфера, его только там можно изменить из скетча его не как нельзя изменить?

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

Только система сианет несовместима с обновлениями Ардуино :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

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

Только система сианет несовместима с обновлениями Ардуино :)

А чтобы сохранить совместимость, нужно не переписывать системный, а пронаследовать от него свой.

b707
Offline
Зарегистрирован: 26.05.2017

ЕвгенийП пишет:

А чтобы сохранить совместимость, нужно не переписывать системный, а пронаследовать от него свой.

спасибо за идею

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

b707 пишет:

ЕвгенийП пишет:

А чтобы сохранить совместимость, нужно не переписывать системный, а пронаследовать от него свой.

спасибо за идею

там всё равно, памойму, буферы ЗА класс вынесены, или я путаю, там тока дефайны за класс вынесены? Паматреть счас негде 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Почему все хотят большие буфера

sadman41
Offline
Зарегистрирован: 19.10.2016

MaksVV пишет:

Почему все хотят большие буфера

Генетическая память.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

MaksVV пишет:

Почему все хотят большие буфера

так обнадёживают жеж )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DetSimen пишет:

там всё равно, памойму, буферы ЗА класс вынесены, или я путаю, там тока дефайны за класс вынесены? Паматреть счас негде 

Нет, они в классе, причём protected, а не private, так что всё можно нормально сделать.

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

Ага, спасибо. :-)

Там тока дефайны за классом

Logik
Offline
Зарегистрирован: 05.08.2014

MaksVV пишет:

Почему все хотят большие буфера

силикон разбаловал. Пока теплый ламповый был и 1байта хватало.