Массив индексации HardwareSerial
Как индексировать порты HardwareSerial в один массив?
Это компилируется, но не работает.
HardwareSerial Serials[]={Serial,Serial1,Serial2,Serial3};
void setup(){
for (int i=0;i<=3;i++){
Serials[i].begin(38400);
while (!Serials[i]);
}
}
char s;
void loop(){
for (int i=0;i<=3;i++){
if (Serials[i].available()){
s=Serials[i].read();
Serials[i].write(s);
}
}
}
@Brethlosze, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 5
ваш код копирует Serial в элементы массива HardwareSerials. Чтобы использовать исходные объекты Serial, сохраните и используйте указатели.
HardwareSerial* Serials[]={&Serial,&Serial1,&Serial2,&Serial3};
void setup(){
for (int i=0;i<=3;i++){
Serials[i]->begin(38400);
while (!*Serials[i]);
}
}
void loop(){
for (int i=0;i<=3;i++){
if (Serials[i]->available()){
char s=Serials[i]->read();
Serials[i]->write(s);
}
}
}
,
@Juraj
Смотрите также:
- Печать массива с помощью функции печати и последовательной записи в Arduino Uno
- Как создать массив из serial.read?
- Последовательный разбор странных данных
- массив в последовательный порт
- Как преобразовать строку в шестнадцатеричный массив
- Матричный дисплей с Arduino UNO (ПРОБЛЕМА)
- Самый быстрый способ прочитать массив чисел из python
- Самый прямой способ назначить байты Serial.read() массиву?
пожалуйста, в следующий раз предоставьте код, который компилируется, @Juraj