Estoy usando el ejemplo predeterminado que se puede encontrar aquí .
La parte del código que me interesa es la siguiente:
#define TEST_BUFFER_SIZE 16
u8 SendBuffer[TEST_BUFFER_SIZE];
u8 ReceiveBuffer[TEST_BUFFER_SIZE];
for (Index = 0; Index < TEST_BUFFER_SIZE; Index++) {
SendBuffer[Index] = Index;
ReceiveBuffer[Index] = 0;
}
XUartLite_Recv(&UartLite, ReceiveBuffer, TEST_BUFFER_SIZE);
XUartLite_Send(&UartLite, SendBuffer, TEST_BUFFER_SIZE);
while ((TotalReceivedCount != TEST_BUFFER_SIZE) ||
(TotalSentCount != TEST_BUFFER_SIZE)) {
}
for (Index = 0; Index < TEST_BUFFER_SIZE; Index++) {
if (ReceiveBuffer[Index] != SendBuffer[Index]) {
return XST_FAILURE;
}
}
El búfer puede contener valores de 1 byte de largo. Usando realterm, envío un archivo de texto que contiene valores como:
0 12 3 4 56 7 8 91
pero lo que leí en ReceiveBuffer es '0', '', '1', '2', '' ... etc Sé que envía caracteres ASCII porque durante la depuración veo que SendBuffer envía caracteres como '\ r', '\ f' que mi terminal traduce como números, pero ¿cómo envío un número de dos dígitos?