Actualizar datos de temperatura mediante Serial.readString con I2C

Hola buenos dias/tardes/noches, tengo un pequeño problema con un proyecto de comunicación mediante modulos xbee, y un I2C, funciona mediante dos botones que accionandolos se entra a un menu en donde muestra los datos.

Mi problema es el siguiente:
Cuando mando los datos al modulo receptor en el LCD solo los muestra una vez cada que entro al submenu, y solo los actualiza si salgo y vuelvo a entrar, lo que necesito es que entrando al submenu me muestre los datos de la temperatura y los este actualizando constantemente ):

La programacion es la siguiente:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define menu 12
#define enter 11

void readButts();
void list_menu();
void menu_select();

LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE);

String cadena;

int line[5] = {0,1,2,3,4},
line_bk[5],
index,
menu_number = 1;

boolean menu_flag = 0,
enter_flag = 0,
sub_menu = 0;

void setup()
{

Serial.begin(9600);

pinMode(menu, INPUT_PULLUP);
pinMode(enter, INPUT_PULLUP);

lcd.begin (16,4);
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print(">");

}

void loop()
{

if(!sub_menu)
{
lcd.setCursor(1,line[0]);
lcd.print("1)TEMPERATURA ");
lcd.setCursor(1,line[1]);
lcd.print("2)TURBIDEZ ");
lcd.setCursor(1,line[2]);
lcd.print("3)PH ");
lcd.setCursor(1,line[3]);
lcd.print("4)CONDUCTIVIDAD E. ");
lcd.setCursor(1,line[4]);
lcd.print("5)AYUDA ");
}

readButts();

}

void readButts()
{

if(!digitalRead(menu)) menu_flag = 0x01;
if(!digitalRead(enter)) enter_flag = 0x01;

if(digitalRead(menu) && menu_flag)
{
menu_flag = 0x00;
list_menu();
menu_number+=1;
if(menu_number > 5) menu_number = 1;

}

if(digitalRead(enter) && enter_flag)
{
enter_flag = 0x00;
sub_menu = !sub_menu;
menu_select();

}

}

void list_menu()
{
for(int i=4; i>-1; i--)
{
index = i-1;
line_bk = line*;*

if(index < 0) line = line_bk[i+4];

_ else line = line[i-1];
* }
}
void menu_select()
{_

switch(menu_number)
_ {*_

* case 1:*

* while(Serial.available()){*
* cadena = Serial.readString();*
* lcd.setCursor(0,1);*
* lcd.println(" "+cadena);*
* delayMicroseconds(1000);*
* }*

* lcd.setCursor(0,0);*
* lcd.print(" TEMPERATURA");*

* break;*

* case 2:*
* lcd.setCursor(1,0);*
* lcd.print(" TURBIDEZ ");*
* lcd.setCursor(0,1);*
* lcd.print(" ");*
* break;*
* case 3:*
* lcd.setCursor(1,0);*
* lcd.print(" pH ");*
* lcd.setCursor(0,1);*
* lcd.print(" ");*
* break;*
* case 4:*
* lcd.setCursor(1,0);*
* lcd.print(" CONDUCTIVIDAD ");*
* lcd.setCursor(0,1);*
* lcd.print(" ");*
* break;*
* case 5:*
* lcd.setCursor(1,0);*
* lcd.print("LINK DE INTERNET");*
* lcd.setCursor(0,1);*
* lcd.print(" ");*
* break;*

* }*

}
Pero solo me interesa esto:
void menu_select()
{
* switch(menu_number)
_ {*_

* case 1:*

* while(Serial.available()){*
* cadena = Serial.readString();*
* lcd.setCursor(0,1);*
* lcd.println(" "+cadena);*
* delayMicroseconds(1000);*
* }*

* lcd.setCursor(0,0);*
* lcd.print(" TEMPERATURA");*

* break;*
En esa parte no actualiza los datos en el LCD ):
Gracias por ayudar c:

Edita el post de modo que el código se vea como lo indican las normas del foro

Si le das al "Auto Formato" (Ctrl+T) tu código en el IDE, veras inmediatamente los errores.

void readButts();     //Esta dos veces
void list_menu();     //Esta dos veces
void menu_select(); //Esta dos veces

int line[5] = {0,1,2,3,4},  //Debe terminar en ;
line_bk[5],                       //Debe terminar en ;
index,                              //Debe terminar en ;
menu_number = 1;
boolean  menu_flag  = 0,  //Debe terminar en ;
enter_flag = 0,                 //Debe terminar en ;
sub_menu = 0;