interference with commands

void loop() {
  sensors.requestTemperatures();
  exchange = sensors.getTempFByIndex(0);
  stove = sensors.getTempFByIndex(1);
  ambient = sensors.getTempFByIndex(2);
 
  automatic.attachPop(automaticPopCallback, &automatic);
  manual.attachPop(manualPopCallback, &manual);
  blowerstat.attachPop(blowerstatPopCallback, &blowerstat);
  circstat.attachPop(circstatPopCallback, &circstat);

    static char StoveTemp[100];
    dtostrf(stove, 3, 0, StoveTemp);
    stovetemp.setText(stove);
  
    static char ExchTemp[100];
    dtostrf(exchange, 3, 0, ExchTemp);
    exchtemp.setText(exchange);
  
    static char Ambient[100];
    dtostrf(ambient, 3, 0, Ambient);
    ambienttemp.setText(Ambient);


if(ambient < Thermostat -3 && Mode == 1){
  digitalWrite(Bypass, LOW); //Wired to NO on relay board
}

nexLoop(nex_listen_list);

}

Whenever I run my code I am not able to use the buttons on the nextion display but if I bypass

    static char StoveTemp[100];
    dtostrf(stove, 3, 0, StoveTemp);
    stovetemp.setText(stove);
  
    static char ExchTemp[100];
    dtostrf(exchange, 3, 0, ExchTemp);
    exchtemp.setText(exchange);
  
    static char Ambient[100];
    dtostrf(ambient, 3, 0, Ambient);
    ambienttemp.setText(Ambient);

then my buttons are functional. I could be wrong but is it because my serial port is being used to send the "setText" data? if so how else could I write it that i can have a live sensor view and also have button functionality, like a Serial Interrupt of some sort

Your code is not easy to understand. Please rewrite it. Describe more detail

The first thing I see is that you are permanently allocating 300 bytes of memory and using it for something that seems more like you could have used 5 bytes temporarily. That is 10% of all the memory available on an Uno. What else do you do with those big static arrays?

We need to see more of the code to understand what it is doing. Is nexloop() part of nextion or is it something you wrote?

The nexloop() is part of the Nextion and i dont understand the "static arrays" thing your talking about, sorry. I've been doing this in what little spare time I have and am not too intelligent with code terms. I am using a Mega 2560 I ended up adding a refresh button to my display to manually update the values as a temporary fix. But in the long haul it has just caused more of an issue with needing to send values to my display consistantly while also needing to read values at the same time. I can post my full code and add some comments to what is what later on when I'm done working but I appreicate the replys to my issue