Путаница в чтении 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);
}
Может ли кто-нибудь помочь мне понять этот вывод?
@user87406, 👍1
Обсуждение1 ответ
▲ 3
Он работает именно так, как ожидалось. Трассировка области показывает 10010101011:
- 1: состояние ожидания последовательного порта
- 0: стартовый бит
- 0: первый бит данных
- 1010101: другие биты данных
- 1: стоповый бит.
Имейте в виду, что биты данных передаются наименее значащими первыми.
,
@Edgar Bonet
большое спасибо, это имеет смысл, @user87406
Смотрите также:
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Использование последовательных контактов TX/ RX для связи по USB
- Проблема последовательной связи с общей землей SIM800L
- Потеря данных при последовательном считывании с помощью Arduino Nano
- Serial.print пропускает или зависает внутри инструкции "if". Попытка вызвать функцию ЧЕРЕЗ последовательный uart
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Как использовать Serial.setTimeout()
полезно, если вы начнете думать в шестнадцатеричном формате, потому что преобразование в двоичное происходит напрямую, без какой-либо математики ... вы отправили 0xAA ... попробуйте 0x55 ... 0x40 ... 0x02 ... что эти значения говорят о проблеме вы пытаетесь решить?, @jsotola