Saludos!!
Soy nueva en esto, pero espero encontrar ayuda por acá

Estoy realizando un proyecto en el cuál debo enviar información sobre la temperatura de un lugar especifico a un celular. Para esto, utilizo un PIC16F887 y el SIM900. A penas estoy empezando el proyecto y he tenido problemas con el SIM. Luego de hacer la rutina de encenderlo, le envío el comando AT pero este no me responde con el esperado OK. Al leer el buffer, sólo recibo un caracter y ahí se queda. No se si es que no estoy enviando el comando de manera correcta, o no estoy capturando bien la respuesta. Ayuda por favor! Acá les dejo como lo estoy haciendo:
#include "libreria.h"
#include <stdio.h>
void main (void)
{
unsigned char array[4];
int i;
inicializar();
LCD_init(); //Inicializar LCD
serial_init();
do
{
PowerOnSim(); //Función para encender SIM
print_serial ("AT"); //Comando de prueba
Serial_Putchar ('\n'); //Salto de línea
for (i=0; i<4; i++)
{
array
= Serial_Getchar ();
Serial_Putchar(array);
}
} while (array[3] != 'K');
while (1);
}
Estas son mis funciones:
void serial_init(void)
{
TXSTA=0b10100100; //Activo la Transmision Serial
RCSTA=0b10010000; //Activo la recepcion serial
BAUDCTL=0b00001000; //Asigno BaudRate
SPBRGH=0; //parte alta
SPBRG =34; //parte baja
}
void Serial_Putchar (unsigned char dato)
{
TXREG = 0; //limpiar registro de envio
TXREG = dato; //enviar caracter
while (!TXIF); //esperar que termine de enviar
TXIF=0; //limpiar flag
}
unsigned char Serial_Getchar (void)
{
unsigned char a;
while (!RCIF); //Espero que termine de llegar dato
a = RCREG; //Guardo dato en a
RCIF=0; //Limpio bandera
return (a);
}