Приветствую, я хочу в массив байтов получать команду(регистры) состоящие из байтов, у меня уже получалось осуществить это с помощью библиотеки software serial но на arduino. Теперь я хочу сделать тоже самое используя ESP 32, я знаю что у нее уже есть готовые порты для последовательно связи uart их три (использовать рекомендуют 2, не суть). rs 485 я подключил к пинам gpio 9 и 10 это и есть SerialPort(1) если я не ошибаюсь. Но ничего не выходит, хоть и скетч заливается, скорость указана верно.
Подскажите, где я могу ошибиться, возможно я неверно инициализирую аппаратный порт Serial1 для подключения интерфейса рс485, может вообще не нежно использовать hardwareserial, не знаю как грамотно осуществить это на esp. Спасибо
Подскажите, где я могу ошибиться, возможно я неверно инициализирую аппаратный порт Serial1 для подключения интерфейса рс485, может вообще не нежно использовать hardwareserial, не знаю как грамотно осуществить это на esp. Спасибо
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);
}
}