Why don't you just print the command, without buffering?
Serial.write('n');
Serial.print(staT);
Serial.print(F(".pco="));
Serial.print(pco);
Here are two complete sketches for comparison
uint8_t staT = 4;
uint16_t pco = 255;
char message [20];
void setup() {
Serial.begin(115200);
sprintf(message, "n%d.pco=%u", staT, pco);
Serial.print(message);
}
void loop() {}
Der Sketch verwendet 2978 Bytes (9%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 216 Bytes (10%) des dynamischen Speichers, 1832 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
uint8_t staT = 4;
uint16_t pco = 255;
void setup() {
Serial.begin(115200);
Serial.write('n');
Serial.print(staT);
Serial.print(F(".pco="));
Serial.print(pco);
}
void loop() {}
Der Sketch verwendet 1732 Bytes (5%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 184 Bytes (8%) des dynamischen Speichers, 1864 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
Look at the massive size increase caused by using sprintf.