Código de paso de bytes por función

Tengo este programa que recibe datos por serial desde el PC, depende el byte que se reciba quiero deribar desde el loop a una funcion para que haga otra cosa. El problema es que no se como pasarle a la funcion el vector que he creado y que guarda los datos recibidos. El codgo es el sigueinte:

void loop() {
  ble.listen();
  if (ble.available() > 0) {
    int tam=ble.available(); //vemos el numero de bytes que nos llegan para almacenarlos y poder saber de antemano que tipo de trama va a ser
    //Serial.println(tam);
    byte byteRecibido[tam];
    for(int i=0;i<tam;i++)
    {
       byteRecibido[i]=ble.read(); //guardo los elementos en un vector
       Serial.println(byteRecibido[i],HEX);
     }

     if(byteRecibido[0]==Cabecera && byteRecibido[tam]==Fin){
      if(byteRecibido[2]==petEsc){
        Serial.println("byte Escritura Recibido");
        peticionEscritura();
      }
      else if(byteRecibido[2]==petLec){
        Serial.println("byte Lectura Recibido");
        //peticionLectura();
      }
      else if(byteRecibido[2]==Error){
        Serial.println("Error en el envio de datos a PC");
      }
      else{
        Serial.println("ERROR! *-Codigo de Instruccion Incorrecto-*");
        MSGerror();
      }
     }
     else{
      Serial.println("ERROR! *-Cabecera o Fin de Mensaje Incorrecto-*");
      MSGerror();
     }
  }
}

void MSGerror () { //funcion que envia mensaje de la trama de error
  byte msgERROR[6];
  msgERROR[0] = Cabecera;
  msgERROR[1] = 6;
  msgERROR[2] = Error;
  msgERROR[3] = errTramaInalida;
  msgERROR[4] = checkSum;
  msgERROR[5] = Fin;
  for (int i = 0; i < 6; i++) {
    //Serial.println(msgERROR[i],HEX); //comprobar que el mensaje de error que se envia es correcto
    ble.write(msgERROR[i]); //enviamos mensaje de error a VS
  }
}

void RespuestaEscritura() { //confirmacion de los datos se han leido correctamente
  byte msgRespEscr[11];
  msgRespEscr[0] = Cabecera;
  msgRespEscr[1] = 0x0B;
  msgRespEscr[2] = resEsc;
  msgRespEscr[3] = varPulgar;
  msgRespEscr[4] = varIndice;
  msgRespEscr[5] = varMedio;
  msgRespEscr[6] = varAnular;
  msgRespEscr[7] = varMenique;
  msgRespEscr[8] = errNoerror;
  msgRespEscr[9] = checkSum;
  msgRespEscr[10] = Fin;
  for (int i = 0; i < 12; i++) {
    //Serial.println(msgRespEscr[i],HEX); //comprobar que el mensaje de error que se envia es correcto
    ble.write(msgRespEscr[i]); //enviamos mensaje de error a VS
  }
}

void peticionEscritura() { //llega el mensaje a partir del codigo instruccion que le corresponde
                           //vamos a comprobar aqui que las partes del mensajes son las correctas, y ademas guardaremos las variables
  if(byteRecibido[3]==VarPulgar){     //AQUI ES DONDE ME SACA EL ERROR 'byteRecibido' no esta 
                                                      //declarado en este scope
    if(byteRecibido[8]==VarIndice){
      if(byteRecibido[13]==VarMedio){
        if(byteRecibido[18]==VarAnular){
          if(byteRecibido[23]==VarMenique){

          }
          else{
            Serial.println("VAR_ID Menique Incorrecta");
          }
        }
        else{
          Serial.println("VAR_ID Anular Incorrecta");
        }
      }
      else{
        Serial.println("VAR_ID Medio Incorrecta");
      }
    }
    else{
      Serial.println("VAR_ID Indice Incorrecta");
    }
  }
  else{
    Serial.println("VAR_ID Pulgar Incorrecta");
  }
}

El error que me saca es es el del comentario del codigo.

Mi pregunta es como podria pasarle byteRecibido a mi funcion, lago del estilo ha:

En el loop --> peticionEscritura(byteRecibido[])

void peticionEscritura(byte bRecibido[]) 
{
     //lo mismo que es la otra parte pero con bRecibido
}

Espero que me podais ayudar o aclarar el uso de funciones con paso de arrays de bytes.

Muchas gracias

Sube todo el código. Faltan las librerías, globales y setup.