Как я могу использовать переменную, чтобы выбрать, с каким последовательным портом взаимодействовать?
В моем случае у меня есть несколько устройств, подключенных к последовательным портам Arduino. В настоящее время я пишу им, используя Serial1.write()
, Serial2.write()
и т. д.
Как я могу выбрать порт программно, например:
for(int i = 0; i < numDevices; i++){
Serial[i].write();
}
@popctrl, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 4
Вы можете использовать массив указателей на фактические последовательные порты. Для например, на Arduino Mega:
const size_t PORTS_COUNT = 4;
const HardwareSerial *ports[PORTS_COUNT] = {
&Serial, &Serial1, &Serial2, &Serial3
};
void setup() {
for (size_t i = 0; i < PORTS_COUNT; i++)
ports[i]->begin(9600);
}
,
@Edgar Bonet
Смотрите также:
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- В чем разница между Serial.write и Serial.print? И когда они используются?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Программы построения последовательных данных
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Очистить существующий массив при получении новой последовательной команды
что ты пробовал? ... какие ошибки вы получили?, @jsotola
Я не получаю никаких ошибок, потому что, как уже говорилось, я знаю, как написать это «жестко закодировано», но не так, как я хочу. Я не пробовал Serial [i], потому что это явно неправильно, но я не могу найти никаких документов о том, как писать в переменный вывод., @popctrl