Arduino Nano и ESP32 считывают разные значения по последовательному интерфейсу
Я пытаюсь использовать лидар Neato xv11 с ESP32. Это должно выводить пакеты по 22 байта с начальным байтом 0xFA. Связь-8N1, а скорость передачи данных-115200 бод.
Когда я подключаю Lidar TX к контакту ESP32 RX2, я получаю данные, которые не имеют смысла, поскольку я получаю начальный байт каждые 9 (а иногда и 8) байтов. Однако, когда я запускаю тот же код на Arduino Nano, я получаю правильные 22-байтовые пакеты. Я даже подключил оба сразу и записал результаты в Putty. Это те данные, которые я получил.
// Arduino Nano Code
void setup() {
Serial.begin(115200);
Serial1.begin(115200);
}
void loop() {
while (Serial1.available()) {
Serial.println(Serial1.read(),HEX);
}
}
// ESP32 Code
void setup() {
Serial.begin(115200);
Serial2.begin(115200, SERIAL_8N1, 16, 17);
}
void loop() {
while (Serial2.available()) {
Serial.println(Serial2.read(),HEX);
}
}
ESP32
FA
A8
0
35
6D
11
17
71
3D
FA
A9
0
3D
12
97
12
10
D1
41
FA
AA
0
E1
E
14
12
E7
1F
FA
AB
Arduino Nano
FA
D8
74
35
6B
3
3D
1
7B
3
3B
1
8C
3
2B
1
9F
3
1C
1
A
1D
FA
D9
74
35
B2
3
1 ответ
Arduino nano имеет только один аппаратный последовательный порт.
Таким образом, Serial1 должен быть программным сериалом, о котором вы не упомянули в своем сегменте кода.
Программное обеспечение serial не может надежно работать со скоростью 115200 бод.
Я бы ограничил последовательный программный код максимум 19200 бод.
Попробуйте использовать Arduino Mega с двумя аппаратными последовательными портами.
Нано работает исправно., @Gil
Если у вас есть прицел, проверьте уровни, чтобы убедиться, что они правильные. Возможно, вам не хватает инверсии. Мы знаем, что данные верны, поскольку Nano правильно их получает. Он имеет три аппаратных последовательных интерфейса, убедитесь, что вы используете правильный интерфейс и контакты., @Gil
- Не могу подключиться к плате ESP32 через последовательный порт
- Нужен пример того, как отправлять КОМАНДЫ AT на модуль SIm7000E GPS+LTE из ESP32 и читать эти ответы в последовательном мониторе
- ESP отправить строку в Arduino
- Последовательная связь UART1 работает на Arduino, но постоянно перезагружает ESP32
- Невозможно загрузить скетч в Lolin S3 Pro (ESP32-S3)
- Проблема с подключением сканера штрих-кода к ESP32 devkit с использованием UART - не удается подключиться через последовательный порт
- Проблема с использованием модуля Bluetooth с платой ESP32s2
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
попробуйте запустить Serial с более высокой скоростью передачи данных ... также попробуйте использовать
if
вместо "while"., @jsotolaвы проверяли напряжение связи?, @Abel
Я проверил напряжение и попробовал преобразователи напряжения. ESP32 по-прежнему получает странные данные. Я также попытался использовать оператор if вместо while, но это не исправило ситуацию. Это очень странное поведение., @the electronics show