PIC16F877A: Transmitiendo datos pero no recibiendo desde el módulo Bluetooth

2

Conecté el PIC16F877A con un módulo Bluetooth HC-05 usando comunicación en serie y puedo transmitir datos del PIC a mi PC. Conecté el Bluetooth de mi PC al módulo Bluetooth HC-05 y en Tera Term o termite 2.9 veo la salida. Sin embargo, cuando envío datos desde el terminal no recibo nada en el PIC. De acuerdo con mi código, los datos recibidos por PIC se reflejaron y se transmitieron por el mismo.

Mi código PIC

#include <htc.h>
__CONFIG(0x2F0A);
#define _XTAL_FREQ  16000000
#define BAUDRATE 9600
void InitUART(void)
{
    BRGH = 1;
    SPBRG = ((_XTAL_FREQ/16)/BAUDRATE) - 1;
    TRISC6 = 0; // TX Pin
    TRISC7 = 1; // RX Pin 
    TXSTA = 0x24;
    RCSTA = 0x90;
    //SPBRG  = 129;
}
void SendByteSerially(unsigned char Byte) // Writes a character to the serial port
{
    while(!TXIF) ; // wait for previous transmission to finish
    TXREG = Byte;
}

unsigned char ReceiveByteSerially(void) // Reads a character from the serial port
{
while(!RCIF)
    continue;   // Wait for transmission to receive
return RCREG;
}

void SendStringSerially(const unsigned char* st)
{
    while(*st)
        SendByteSerially(*st++);
}


void main (void)
{
    unsigned char SerialData;
    unsigned int i;
    TRISB=0x00;
    PORTB=0xff;
    InitUART(); // Intialize UART
    SendStringSerially("Hello World");
    while(1)
    {
    PORTB=0x00;
    for(i=0; i<100; i++)
        __delay_ms(10);
    PORTB=0x01;         
    for(i=0; i<100; i++)
        __delay_ms(10);
    SerialData = ReceiveByteSerially();
    SendByteSerially(SerialData);
    }
}

En el bucle while parpadeo un LED durante 1 segundo si se recibe algún dato.

    
pregunta user30435

1 respuesta

2

El módulo Bluetooth HC-05 funciona con un suministro de 3.3V. Si está ejecutando su PIC apagado a 5 V, entonces necesitará cambiar de nivel la señal de salida de 3,3 V del módulo a una entrada de señal de 5 V al PIC. Figura 6 en el manual de la guía del producto:

enlace

... muestra cómo hacerlo con un par de transistores.

    
respondido por el aja

Lea otras preguntas en las etiquetas