Estoy trabajando con un PIC32MX564F128H en MPLABX 2.35 con pickit3. Estoy tratando de analizar un mensaje de UART. El carácter se recibe correctamente, pero me detengo cuando intento copiar un carácter en un búfer. Esta es la parte en mi bucle principal:
unsigned char*buffer="efg"; //dummy string
GetDataBuffer(buffer, 3);
_
UINT32 GetDataBuffer(unsigned char *buffer, UINT32 max_size)
{
UINT32 num_char;
num_char = 0;
while(num_char < max_size)
{
UINT8 character;
while(!UARTReceivedDataIsAvailable(UART1));
character = UARTGetDataByte(UART1);
if(character == '\r')
break;
*buffer = character; **\PROGRAM STALLS HERE**
buffer++;
num_char++;
}
return num_char;
}
Síntomas:
En el modo de depuración, después de la declaración del puntero char sin firmar: dirección del búfer: 0xA0008010 Valor: Dirección no válida
Después de pasar a GetDataBuffer: dirección del búfer: 0xA00071F8 Valor: 0x9D005ED8 * buffer = 0x65 ("e", en este momento no se escribe). Continuando, el programa se detiene en el punto que se muestra arriba hasta que el depurador se detiene en una ubicación desconocida.