Путаница в чтении Oscope Software Serial Arduino

Я пытаюсь устранить неполадки программного соединения Uart с моего Arduino Nano, и я не понимаю этот вывод. Настройка проста, у меня есть программное последовательное соединение на контактах 2 и 3. Я отправляю 170, что, как я ожидаю, будет 10101010, конечно, с низким стартовым битом и высоким стоповым битом.

Я подключаюсь к линии TX с помощью оскопа и проверяю форму сигнала, но это не так, как я ожидал.... Я вижу только 101010

#include <Arduino.h>
#include <SoftwareSerial.h>

#define SW_RX 2
#define SW_TX 3
#define SW_BAUD 9600

SoftwareSerial Serial2(SW_RX,SW_TX);

void setup(){
  Serial2.begin(SW_BAUD);
  delay(1000);
}

void loop(){
  Serial2.write(170);
  delay(100);
}

Может ли кто-нибудь помочь мне понять этот вывод?

Изображение микроскопа

Схема

, 👍1

Обсуждение

полезно, если вы начнете думать в шестнадцатеричном формате, потому что преобразование в двоичное происходит напрямую, без какой-либо математики ... вы отправили 0xAA ... попробуйте 0x55 ... 0x40 ... 0x02 ... что эти значения говорят о проблеме вы пытаетесь решить?, @jsotola


1 ответ


3

Он работает именно так, как ожидалось. Трассировка области показывает 10010101011:

  • 1: состояние ожидания последовательного порта
  • 0: стартовый бит
  • 0: первый бит данных
  • 1010101: другие биты данных
  • 1: стоповый бит.

Имейте в виду, что биты данных передаются наименее значащими первыми.

,

большое спасибо, это имеет смысл, @user87406