Comunicación Bluetooth mediante puerto serie Pic 18F2680

#1
Hola,

Necesito comunicar el pic 18f2680 a un modulo Bluetooth, llamado Bluematik (aqui esta el datasheet--> http://www.albedo.biz/download/flexipanel/doc/BlueMatik.pdf)

Estoy programando con el CCS C y le envio comandos AT por el puerto serie del PIC al modulo Bluematik segun los comandos de configuración (http://www.okwelectronics.com/datasheets/bluetooth/DS372-2.pdf)

Empece introduciendo los comandos AT por hyperterminal y el modulo Bluetooth si los entencia y podia reconocer el modulo con mi movil, sin embargo cuando me he puesto a programar en C, no me funciona.

Les pongo el codigo por si ven algun fallo, Gracias

#include <18F2680.h>

#fuses HS,NOPROTECT,NOLVP,NOWDT,NODEBUG
#use delay(clock=8000000)

#use rs232(baud=115200,parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8)
#byte RCSTA= 0xFAB
#byte TXSTA= 0xFAC
#byte BAUDCON= 0xFB8
#byte SPBRG= 0xFAF


#define MUM PIN_C5
#define HUM PIN_C4
#define ONOFF PIN_C3


void main()
{

RCSTA=0b10010000;
TXSTA=0b00100110;
BAUDCON=0b01000000;
SPBRG= 3;

disable_interrupts(global);
setup_adc_ports(NO_ANALOGS);
set_tris_c(0b10000111);


while (true)
{

delay_ms(500);
output_high(HUM);
output_low(MUM);
delay_ms(500);

output_low(ONOFF);
delay_ms(500);
output_high(ONOFF);
delay_ms(2000);

printf("AT+BRSR=1,0\r\n");
delay_ms(2000);


printf("AT+BSEC=1\r\n");
delay_ms(2000);

printf("AT+BNAM=PFC\r\n");
delay_ms(2000);

printf("AT+BSLV\r\n");
delay_ms(2000);


}

}//FIN DEL PROGRAMA


Tengo las siguientes dudas:
- Nose si el retorno de carro es: \r\n
-La configuración de los registros rcsta,txsta,baudcon y sprgh, nose si son necesarios

Nuevamente gracias
 
#2
Hola loko..

para enviar comandos en c lo que tenes que usar es la funcion puts y no printf..

para mandar el comando /r/n se manda como comando ASCII
al principio mandas

unsigned char puerto_serie[]="AT+ZV SPPConnect XXXXXXXXXXX";

y despues llamas a la funcion "puerto_serie" en otro lugar del programa


puts(puerto_serie);
putchar(0x0d);
putchar(0x0a);
delay_ms(10000);


en las XXXXX tenes que poner el codigo del modulo al cual te queres conectar
 
Arriba