Плата и терминал, вероятно, не используют одинаковую скорость передачи данных. Проверьте нижний правый угол последовательного терминала Arduino и убедитесь, что он установлен на 9600.
Серийные данные
Последовательная связь работает, посылая весь поток данных по одному биту за раз. Это в отличие от стандартного параллельного порта, который отправляет один байт за раз. Оба устройства должны знать, с какой скоростью отправляются данные. Кроме того, оба устройства должны работать с одинаковой скоростью. Это называется скоростью передачи данных.
Скорость передачи
Бод на самом деле просто означает импульсы в секунду. В контексте последовательной связи это означает, сколько битов передается в секунду. Одним из наиболее распространенных значений является 9600, но есть и другие общие значения, которые являются коэффициентами или кратными 9600. Однако это не имеет значения, если оба устройства работают с одинаковой скоростью.
Если я отправляю вам сообщения быстрее, чем вы, вы теряете данные. Если я отправляю вам сообщения медленнее, чем вы их получаете, вы смешиваетесь с тем, что я вам отправил.
Данные, четность, стоп-биты
Если вы посмотрите на документацию begin()
, вы увидите, что она может принимать два параметра:
Serial.begin(speed)
Serial.begin(speed, config)
Надеюсь, вы понимаете скорость сейчас, это биты в секунду, с которыми Arduino будет общаться.
Второй параметр, config
позволяет вам настроить некоторые другие параметры последовательной передачи данных. Это данные, четность и стоп-биты. Вы увидите на странице, что она имеет такие значения, как 5N1
, 6N1
иSERIAL_8N1 (the default)
Первое число представляет, сколько бит данных. Второй символ говорит вам, что это за бит четности. E
для четного контроля, O
для нечетного контроля или N
без контроля. Третье число говорит вам, сколько стоп-битов.
Так что на самом деле, с 8N1 у нас есть 10 битов, отправляемых на каждые 8 битов «ваших» данных. 1 стартовый бит, 8 бит данных и 1 стоповый бит.
В любом случае, обе стороны должны договориться об этой информации, а также о скорости. Серийный терминал Arduino не дает вам возможности изменять эти настройки, но другие делают это, поэтому вы должны быть уверены, что все эти параметры конфигурации одинаковы.
Больше информации на вики: Асинхронная последовательная связь