[RISOLTO] Problema modbus-RTU rs485

Ciao ragazzi,
per diversi miei progetti ho utilizzato la libreria "ModbusMaster-master" per leggere o scrivere alcuni registri.
Oggi provando a a comunicare con altre tipologie di apparati, il result della richiesta mi torna 1.

Purtroppo, dando un'occhiata veloce al manuale non ho trovato nulla.
Di seguito il codice del programma:

#include <ModbusMaster.h>

ModbusMaster address1;
#define MAX485_DE      53          // Trasmissione modbus
#define MAX485_RE_NEG  53          // Trasmissione modbus


uint8_t result;
void preTransmission()                  //prima della trasmissione arduino---->inverter
{
  digitalWrite(MAX485_RE_NEG, 1);
  digitalWrite(MAX485_RE_NEG, 1);
}

void postTransmission()                 //dopo della trasmissione inverter---->arduino
{
  digitalWrite(MAX485_RE_NEG, 0);
  digitalWrite(MAX485_DE, 0);
}

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);                             //seriale
  pinMode(MAX485_RE_NEG, OUTPUT);
  pinMode(MAX485_DE, OUTPUT);
  digitalWrite(MAX485_RE_NEG, 0);
  digitalWrite(MAX485_DE, 0);

  address1.begin(1, Serial1);
  address1.preTransmission(preTransmission);
  address1.postTransmission(postTransmission);

  delay(2000);
}

void loop() {

  result = address1.readInputRegisters(0x690, 1);
  Serial.println(String(result));
  if (result == address1.ku8MBSuccess) {
    Serial.println(String(address1.getResponseBuffer(0))); 
  }
  delay(5000);
}

Grazie per eventuali risposte

ciao...se ti ritorna 1 o meglio 0x01 significa "illegal function" cioè la risposta, nella parte riferita alla funzione che hai inviato (readInputRegisters) contiene un "valore" non valido...questo può essere determinato dal fatto che il device che stai interrogando NON supporta questa funzione o non è stato configurato per gestire questa funzione.
quindi verifica che il device che hai sia predisposto alla funzione e/o che non sia inibita.

Ho risolto utilizzando la funzione

readHoldingRegisters

e passandogli il registro in valore decimale.

ciao...infatti hai entrambi gli errori...il tuo slave, pens che arduino faccia da master, non supporta la funzione per leggere più registri alla volta.

che device è?...hai un link che ci do un'occhiata?

ciao