Esp 32 прием данных на Serial1по modbus(rs485)

Kolenval12

✩✩✩✩✩✩✩
14 Фев 2023
11
0
Приветствую, я хочу в массив байтов получать команду(регистры) состоящие из байтов, у меня уже получалось осуществить это с помощью библиотеки software serial но на arduino. Теперь я хочу сделать тоже самое используя ESP 32, я знаю что у нее уже есть готовые порты для последовательно связи uart их три (использовать рекомендуют 2, не суть). rs 485 я подключил к пинам gpio 9 и 10 это и есть SerialPort(1) если я не ошибаюсь. Но ничего не выходит, хоть и скетч заливается, скорость указана верно.

Подскажите, где я могу ошибиться, возможно я неверно инициализирую аппаратный порт Serial1 для подключения интерфейса рс485, может вообще не нежно использовать hardwareserial, не знаю как грамотно осуществить это на esp. Спасибо
1680632660636.png
esp32:
#include <HardwareSerial.h>
#define 35 //порт для задания rs 485 как слушателя или отправителя
HardwareSerial SerialPort(1); // use UART1

byte MSG_IN[8];
int i = 0;
bool received = false;
void setup() 
{
  SerialPort.begin(115200, SERIAL_8N1, 9, 10);
  Serial.begin(57600);
  pinMode(35,OUTPUT);
  digitalWrite(35,LOW); //задаем rs 485 как приемник
}

void loop() 
{
   i = 0;
    while(SerialPort.available()){ //парсинг в массив
        MSG_IN[i] = SerialPort.read();
        i+=1;
        received = true;
    }
    if (received == true) {
      
      for (int j = 0; j < 8 ; j++) {
        if (j == 0) {
          Serial.println(" ");
        }
        Serial.print( MSG_IN[j],HEX);
        Serial.print(" ");
        if (j == 8) {
          Serial.println(" ");
        }
      }
    received = false;
    Serial.print("Байт получено ");
    Serial.println(i);
    }

}
 

Kolenval12

✩✩✩✩✩✩✩
14 Фев 2023
11
0
@Геннадий П, понял попробую, да конечно не на прямую) Думал я неверно пины указываю еще

@Геннадий П,к сожалению вообще не работает

Проверил уровень сигнала модуля rs 4850который отвечает за прием/отправку данных и там высокий уровень,
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,971
632
45
@Kolenval12, Чтоза модуль? Может он на 5-вольтовую логику. Замкни на ESP между собой RX-TX и попробуй что нть отправить.
 

Kolenval12

✩✩✩✩✩✩✩
14 Фев 2023
11
0
Разобрался, 34 и 35 пин например не могу отправлять логические сигналы, поэтому rs 485 был в режиме записи . Пин gpio 18 уже работал так как надо