Using sprintf and nextion display

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.