Как я могу писать на Arduino с ПК с rs-485 и QSerialPort

#c #qt #arduino #rs485

Вопрос:

Я соединил свой компьютер и свой Arduino с линией RS-485 и преобразователем TTL/RS-485. Я получаю сообщение от Arduino, но когда я хочу отправить информацию со своего компьютера, на Arduino нет квитанции.
Мой код Arduino таков :

 const int slavePin = 4 // link to RE and DE of converter module.

void setup(){
   pinMode(slavePin, OUTPUT);
   digitalWrite(slavePin, LOW);
}
c
void loop{
   while(Serial.available()){
      if(Serial.Read()){
         digitalWrite(2, HIGH); // switch on a led.
      } 
   }
}
 

В моем коде на C у меня есть все параметры инициализации. Я не забываю писать в arduino->open(QSerialPort::ReadWrite); строке.
Моя функция для записи в arduino-это вызов, когда я нажал на кнопку.

 void Dialog::serialWrite(){
   quint8 bw = 0;
   serialDataWrite = "1";
   if(arduino !=NULL amp;amp; arduino->isWritable()){   // arduino is my QSerialPort object.
      bw = arduino->write(serialDataWrite);
      qDebug() << bw << "bytes written | Value sent : " << serialDataWrite;
   }
}
 

Эта функция работает, когда я использую соединение rs-232, но не с rs-485. Кто — нибудь может мне помочь ?

Комментарии:

1. RS232 и RS485 имеют разную архитектуру вы используете преобразователь RS232 в RS485? Это может быть физическая проблема, а не проблема программного обеспечения.

2. Есть физическая разница, но обычно я могу использовать одно и то же программное обеспечение. Моя функция считывания работает с rs-232 и rs485 без проблем.

3. Является ли изменение в случае serialDataWrite в ` SerialDataWrite = «1»;` и arduino->write(serialDataWrite); опечаткой?

4. Да, вы можете использовать одно и то же программное обеспечение. Я сказал это, потому что, если он работает с RS232, вам следует проверить другую часть системы. Протестируйте с помощью другого программного обеспечения для связи, чтобы убедиться в вашей физической линии. Как геркулес в Windows или замазка в Linux.

5. Здесь плохая опечатка, но в моем коде это хорошо. мне пришлось отредактировать для изменения эту ошибку. Я проверю шпатлевку и вернусь, чтобы сказать, работает ли она.