Particle Electron на RS232 Серийная тарабарщина
Я потратил весь день, пытаясь отслеживать вывод последовательной консоли маршрутизатора. Я использую конвертер MAX3232 RS232 в TTL от «ebay», подключая только GND, TX и RX к Electron. Попытка просто отслеживать вывод консоли во время загрузки - все, что я получаю, это тарабарщина.
Даже подключен к порту COM1 компьютера и не может передавать эхо туда и обратно. Все, что я получаю, это 0 или странные символы. (это было опробовано с большим количеством кода, чем показано ниже)
Вот мой самый простой код. Я почти готов сдаться. Есть идеи?
#include "Particle.h"
void setup() {
Serial.begin(9600);
Serial1.begin(9600); // пробовал с 2400/даже 1200 должно быть 9600
Serial.println("Starting up Serial");
Serial1.println("Starting up Serial1");
}
void loop() {
while(Serial1.available()>0)
{
Serial.write(Serial1.read());
}
delay(50);
}
@user1389579, 👍1
Обсуждение2 ответа
Если OP правильно заявил, что было выполнено только три подключения к MAX3232, питание на устройство отсутствует. Код протестирован с передающим устройством RS232 (Maxbotix 7092) с прорывом Sparkfun MAX3232 и Particle Photon. Последовательный монитор правильно отображает показания непрерывного диапазона.
Вам не нужно никакого оборудования между Particle и маршрутизатором. И маршрутизатор, и Particle работают на логических уровнях 3,3 В.
- Подключите GND маршрутизатора к GND Particle.
- Подключите TX маршрутизатора к RX1 Particle.
- Подключите RX маршрутизатора к TX1 Particle.
Вам нужен только MAX3232, если вы хотите подключиться напрямую к порту RS232 вашего компьютера:
- Подключите GND MAX3232 к GND компьютера и GND маршрутизатора.
- Подключите TX компьютера к RIN MAX3232
- Подключите RX компьютера к DOUT MAX3232
- Подключите TX маршрутизатора к DIN MAX3232.
- Подключите RX маршрутизатора к ROUT MAX3232
- Подключите VCC MAX3232 к +3,3 В от маршрутизатора.
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Использование Arduino для чтения и записи данных на устройство RS232
- Управление потоком между устройством ESP32 и RS323
- невозможно прочитать вывод RS232 на Arduino mega с экраном MAX232
- Искаженный серийный номер устройства GPS
- Отправка данных на программируемый источник питания от Arduino по RS232
- Чтение данных с Ohaus Defender 3000 с экраном RS-232
- Arduino не может прочитать 0x41 и 0x42 (отлично читает другие (приемник банкнот ICT)
Проверяли ли вы напряжение питания на контактах MAX3232 (контакт 2 V+ и контакт 6 V-)? Каковы значения двух летающих колпачков (на контактах 1–3 и 4–5)? И, если вы подозреваете, что вам продали контрафактную деталь, служба поддержки клиентов Максима хотела бы знать об этом. (Отказ от ответственности: я инженер приложений Maxim.), @MarkU
Я подозреваю, что у вас неправильная тактовая частота основного последовательного порта., @Jasen
Петлевой тест трансивера MAX3232 сам по себе (независимо от микроконтроллера). Подключите петлю на стороне RS232 (T1OUT управляет R1IN), а затем подайте логический низкий уровень на T1IN, ожидайте, что петля RS232 должна стать примерно +5,5 В, и ожидайте, что R1OUT должен стать логическим низким. Затем установите высокий логический уровень на T1IN, ожидайте, что петля RS232 должна стать примерно -5,5 В, и ожидайте, что R1OUT должен стать логическим высоким. [Техническое описание MAX3232](http://pdfserv.maximintegrated.com/en/ds/MAX3222-MAX3241.pdf), @MarkU
Обязательно попробую и вернусь. Спасибо, @user1389579
Я не видел никаких комментариев, чтобы проверить другие скорости передачи данных. Как вы определили, что она должна быть 9600 бод? Какую плату Arduino вы используете? Я не играл с мегаплатой, но в примерах, которые я видел, Serial.begin() не использовался. Все они были Serial1.begin, Serial2.begin... в зависимости от того, какой последовательный порт вы хотите использовать., @linhartr22