Estoy comunicando un ESP32 y un STM32 con UART, estoy programando al ESP32 con Arduino IDE y parece estar todo bien pero tengo un problema al envia, en mi proyecto basicamente recibo mensajes por Bluetooth y ese mismo mensaje lo envio por el UART2 a un STM32 y el STM32 lo recibe con DMA, el problema es que a veces el ESP32 me envia la trama correcta, por ejemplo me envia 'HOLA' , pero a veces envia '\0HOLA' y no logro entender porque, pienso que es el ESP32 el que tiene el problema ya que como les digo a veces lo envia correctamente y a veces no, y usado 3 distintos terminales bluetooth y el comportamiento es el mismo, les dejo la parte del codigo del ESP32 que configura el UART y envia los datos.
Buffer de recepcion y envio
char mensajeSTM32[10];
Configuracion del Bluetooth y UART2
MySerial.begin(115200, SERIAL_8N1, 16, 17); //Configuracion UART2
GenioOneBT.begin(device_name); //Inicializo el puerto BT
MySerial.setTimeout(10); //Si pasa mas de 10ms paro la recepcion
memset(mensajeSTM32, 0, 10); //Limpio el buffer de recepcion
Codigo que envia datos
if (GenioOneBT.available()) //Si recibo datos por bluetooth
{
GenioOneBT.readBytesUntil('\0', mensajeSTM32, 10); //Recepciono los datos
MySerial.write(mensajeSTM32, 10); //Envio por UART2 lo que recivi
memset(mensajeSTM32, 0, 10); //Vuelvo a limpiar el buffer
}