El programa general de comunicaciones de mfc recibió menos de 29 datos incompletos. Utilizo el asistente de depuración en serie para recibir los datos completos, 29 bytes a la vez.
El puerto serie recibe datos, a veces no todos a la vez. Debe tener un caché de recepción y colocar todos los datos recibidos en el caché. Cuando la colección esté completa, comience su trabajo. Si a menudo te encuentras con una colección incompleta, esta es la solución.
for(k = 0; k & lt29;k++)
safearray_inpGetElement(& k, rxdata+k); //Convertir a matriz de bytes
Allí Hay algo mal con esta frase. Si no recibes 29, algo sucederá.
for(k = 0; k & lt29;K++) //Convierte la matriz a una variable de tipo Cstring.
{
BYTE Bt = *(char *)(rxdata+k); //Tipo de carácter
strtemp. Format("%X", Bt); //Enviar caracteres a la variable temporal strtemp para su almacenamiento.
m _ EditRxData+= strtemp; //Agrega la cadena correspondiente al cuadro de edición de recepción.
}
Este es el mismo problema.