Uart Вопрос

Grumpyoldpizza
Вт 14 июня 2016 г. 18:17
Со стандартным жестким образом, это следующее использование, которое, как ожидается, будет работать:

Serial1.начало (19200);
Serial1.начало (9600);

Эти 2 спины к спине serial1.begin () ОК ? Каково ожидаемое поведение (сначала набор 19200 года, а затем установил 9600 бод или установил бод 19200 года, а затем игнорируйте 2 -й звонок, так как уже был серийный 1.начинать()) ?

Для любого ответа/Opionion есть ли «официальная» документация/ссылка, которая подтвердит это ?

Martinayotte
Вт 14 июня 2016 г. 18:59
Вопрос выглядит как викторина ... : P

Посмотрев быстро на источники F4, «официальную» ссылку, похоже, что оба вызова будут удостоены чести, и последний станет победителем.

Grumpyoldpizza
Вт 14 июня 2016 г., 19:18
Martinayotte написал:Вопрос выглядит как викторина ... : P

Посмотрев быстро на источники F4, «официальную» ссылку, похоже, что оба вызова будут удостоены чести, и последний станет победителем.

Martinayotte
Вт 14 июня 2016 г., 8:31 вечера
Я думаю, что мы должны в идеале почтить все вызовы, чтобы мы могли переключать ставки до тех пор, пока мы желаем.
Я не знаю, есть ли «официальные» ссылки на это, даже на Arduino.CC, может быть, некоторые поиски что -то покажут.
Мы также можем провести некоторые тесты на разных досках, но «время - отсутствующий ингредиент» ...

Rogerclark
Вт 14 июня 2016 г. 22:16
По моему опыту, такие вещи не хорошо документированы.

Обычно люди ссылаются на то, что делают Avr Arduino, и используют это в качестве стандарта Defacto.

В этом случае я согласен с Мартином. Я ожидаю, что второй звонок будет удостоен чести.

Я могу вспомнить множество случаев, когда потребуется изменение скорости передачи.

эн.глин. Некоторые периферийные устройства инициализируются с медленной скоростью, e.G 9600, но может быть отправлена ​​команда AT, чтобы переключиться на более высокий уровень бода.
Следовательно, MCU необходимо будет переключиться на более высокую ставку после того, как сообщил периферийному характеристику.

Я понятия не имею, работает ли это на ядре Libmaple, но у меня не было никаких сообщений об ошибках, чтобы сказать, что это не делает этого

Grumpyoldpizza
Вт 14 июня 2016 г. 22:27
Rogerclark написал:По моему опыту, такие вещи не хорошо документированы.

Обычно люди ссылаются на то, что делают Avr Arduino, и используют это в качестве стандарта Defacto.

В этом случае я согласен с Мартином. Я ожидаю, что второй звонок будет удостоен чести.

Я могу вспомнить множество случаев, когда потребуется изменение скорости передачи.

эн.глин. Некоторые периферийные устройства инициализируются с медленной скоростью, e.G 9600, но может быть отправлена ​​команда AT, чтобы переключиться на более высокий уровень бода.
Следовательно, MCU необходимо будет переключиться на более высокую ставку после того, как сообщил периферийному характеристику.

Я понятия не имею, работает ли это на ядре Libmaple, но у меня не было никаких сообщений об ошибках, чтобы сказать, что это не делает этого

Rogerclark
Вт 14 июня 2016 г. 22:57
Называя сериал.end () кажется логичным, поэтому я не вижу, чтобы кто -то жаловался на это

... Если это не работает на AVR, просто позвонив в другой сериал.начинать()

Я знаю, что вы используете Arduino Zero в качестве ориентира для сопоставимости, но, по моему опыту, к сожалению, AVR Arduino используется в качестве стандарта Defacto, нравится нам это или нет.

Это означает, что с помощью Libmaple мы в конечном итоге, необходимо делать что -то, например, установить PinMode для аналогового ввода, когда люди используют AnaloGeread (), потому что на UNO они определили набор контактов для аналоговых входов и, следовательно, пользователя не нужно вызывать Pinmode

Martinayotte
Ср 15 июня 2016 г. 12:38
Лично мне было бы не волнуло, если Ардуино является стандартом или нет.
STM32DUINO может привести каким -то образом, как текущий сериал.begin () поведение.
Если некоторые звонят в сериал.End () необходим (что все еще должно быть доказано как на F1, так и на F4), чем сериал.begin () может назвать его, если будет установлен внутренний флаг "уже_инициализированный".
Я добровольно смотрю на F4, когда «Ингредиент времени вернулся в наличие в наличии» ... :)

Rogerclark
Ср 15 июня 2016 г. 12:54
Я согласен, что наличие дополнительного флага не будет большой проблемой, так как никто не будет называть сериал.Begin () снова и снова в некоторое время критический код, где дополнительный оператор будет замедлить ситуацию.

Ахулл
Ср 15 июня 2016 г. 1:34
Martinayotte написал:... Когда «ингредиент времени возвращается в наличии» ... :)

Martinayotte
Ср 15 июня 2016 г. 1:49
Ахулл написал:Пришлите мне несколько бушелей, когда он вернется, я возмесчу тебе... позже естественно. ;)

Ахулл
Ср 15 июня 2016 г., 2:19
Martinayotte написал:Ахулл написал:Пришлите мне несколько бушелей, когда он вернется, я возмесчу тебе... позже естественно. ;)

Rogerclark
Ср 15 июня 2016 г. 2:23
Энди

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

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

Возьмите время, оцененное программистом, и умножьте его на PI

Я обнаружил ;-)

Martinayotte
Ср 15 июня 2016 г. 2:32 утра
Но PI определяется, что верно для скотча ? :ржу не могу:

Ахулл
Ср 15 июня 2016 г., 3:14
Martinayotte написал:Но PI определяется, что верно для скотча ? :ржу не могу: