Red de conocimiento informático - Aprendizaje de programación - 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 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.