Estoy tratando de conectar un PIC24FJ128GA310 montado en una placa Explorer 16 con un módulo inalámbrico incorporado. He podido configurar ambos para comunicarme perfectamente bien con PuTTY (equivalente a Hyperterminal), ¡pero no se comunicarán entre sí!
No he configurado UART para un microcontrolador antes, pero aquí está mi código de configuración (que funciona para PuTTY):
RPOR8bits.RP17R = 5; // RP5 as U2TX mapped for peripheral pin select
RPINR19bits.U2RXR = 10; // RP10 as U2RX mapped for selectable input source
U2BRG = 25; // 9600 baud rate
U2MODEbits.UARTEN = 1; // UART2 is enabled
U2MODEbits.ABAUD = 0; // Auto-baud disabled
U2MODEbits.RTSMD = 0; // 0 = Flow Control and 1 = Simplex
U2MODEbits.BRGH = 0; // Low baud rate
U2STAbits.UTXEN = 1; // Transmit enabled
¿Alguien puede ayudar? He intentado cables de módem directos y nulos. El microcontrolador puede mostrar la recepción de una señal en el 'Bit de recepción de datos de búfer disponibles' U2STAbits.URXDA.
Puedo enviar y recibir una cadena de tres caracteres como máximo, si las configuraciones de control de flujo y eco son las mismas en ambos extremos, y termino la cadena con '\ 0'. Ningún hardware conecta los dos, excepto el cable RS232 y el adaptador de módem nulo. Sin embargo, necesito reiniciar el microcontrolador después de cada intento para que muestre una señal recibida nuevamente. ¿Por qué necesito restablecerlo y por qué 3 es el número máximo de caracteres?
Cuando digo que funciona con PuTTY, quiero decir que usando este equivalente a Hyperterminal Puedo enviar mensajes al microcontrolador que se muestran en la pantalla LCD del Explorer 16 sin problemas (si se hace eco de los caracteres recibidos de nuevo en PuTTY).
* RESUELTO: fue un desbordamiento de búfer de recepción. @Madmanguruman Intenté responder, pero el sitio web no me lo permite durante 8 horas después de publicar la pregunta, así que lo haré más tarde ...