Vamos por parte..
void Blink_LED(){
if(PORTEbits.RE0 == 1) {
PORTEbits.RE0 = 0;
} else{
PORTEbits.RE0 = 1;
}
}
Eso posee 1 error y la funcion no posee sentido.
El error es que Para escribir en el puerto debo usar el registro LATx, para resumirtelo:
- PORTx para leer el estado del pin
- LATx para leer el buffer de salida o para escribir un dato al pin
- TRISx para cambiar a entrada/salida
Lo otro que digo que no posee sentido es porque deberias haber realizado una XOR del pin:
Continuamos:
EECON2 = 0x55;
EECON2 = 0xAA;
PPSCON = 0x00; //Apagar proteccion de pin para poder asignar
Tampoco posee sentido porque el PPSCON tiene el valor 0x00 en el reset, incluso por ahora podrias omitirlo y no usarlo para nada.
Voy a suponer que los pines remapeables son los correctos, tambien la frecuencia.
SPBRG2 = 12; // Configuracion a 115200 baudios
RCSTA2 = 0b10010000; // Habilitar recepción de datos y recepción continua
TXSTA2 = 0b00100000; // Habilitar transmición de datos y modo high speed
BAUDCON2 = 0b00001010;
Segun esto es que tengo BGRH = 0 , y BGR16 = 1, por lo tanto la formula de los baudios me quedan en
Fosc/(16 (n+1))
Si pongo los valores me da aproximadamente 58700. No se si es un error tu comentario de 115k.
--------------------------------------------
Segun tu configuracion estas usando un cristal de 8Mhz, pasa por el PLL lo cual lo lleva a 96Mhz luego lo baja a 48Mhz y finalmente una division por 3 para entrar a la CPU, eso te deja con 16Mhz y no 12Mhz y para usar las funciones de las plib, deberias definir correctametne el _XTAL_FREC