Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/02/2010 #1


Comunicación Bluetooth mediante puerto serie Pic 18F2680
Hola,

Necesito comunicar el pic 18f2680 a un modulo Bluetooth, llamado Bluematik (aqui esta el datasheet--> http://www.albedo.biz/download/flexi.../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/datash...th/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
28/08/2010 #2


Respuesta: Comunicación Bluetooth mediante puerto serie Pic 18F2680
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
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.