Hallo,
Mein Name ist Yan und habe eine Frage, wenn ihr ein bisschen Zeit für mich habt
Ich habe eine Schaltung aufgebaut, die aus Mikrocontroller PIC18f2450, BTM 222 besteht. Nach dem Löten wollte ich das BTM konfigurieren. Meine Schaltung ist durch Pickit 3 an meinem Laptop verbunden werden und ich programmiere meine Mikrocontroller durch das Programm MPLAB und benutze dafür C Sprache. Ich habe schon RX und TX Bluetooth mit TX und RX Mikrocontroller verbunden.
Mein Mikrocontroller und BTM 222 brauchen 3.3 V und wird die Spannung von PICKIT 3 besorgt. PIN 2 und 17 an BTM 222 haben schon 3,3 V und alle Pins, die zu GND sind, sind schon mit GND verbunden und Pin nummer 37 an die Antenne.
Was ich verstanden habe, dass ich die BT Befehle schicken muss um die Bluetooth zu konfigurieren. Meine Bluetooth in der Schaltung muss Slave sein und will ihn mit anderer Bluetooth verbinden.
Ich habe schon ein C Code geschrieben aber ich weiss es nicht, dass ich die richtige Reihenfolge gemacht habe oder nicht. wenn ich das Programm in MPLAB laufen lass, kann ich die Bluetooth mit meinem Handy nicht sehen, d.h die Bluetooth funktioniert nicht oder? ich glaube ich habe was vergessen, ich muss noch im Code was schreiben aber ich habe keine Ahnung was ich schreiben muss. In Internet gibt es nicht viele Info. darüber
Hier ist mein Programm:
Code:
#include <stdio.h>
#include <delays.h>
#include <usart.h>
#include <adc.h>
#include <string.h>
#include <math.h>
#include "p18f2450.h"
#pragma config PLLDIV = 2 // Divide by 2 (8 MHz oscillator input)
#pragma config CPUDIV = OSC3_PLL4 //CPU Clock = 96 MHz/4 = 24 MHz <=> CPUDIV = 4
#pragma config USBDIV = 2 // 96MHz PLL/2 = 48 MHz for USB clock
#pragma config FOSC = HSPLL_HS // High Speed Crystal / Resonator with PLL enabled
#pragma config VREGEN = ON // USB Internal Voltage Regulator enabled
#pragma config FCMEN = ON //Fail-Safe Clock Monitor enabled
#pragma config IESO = OFF //Oscillator Switchover mode disabled
#pragma config PWRT = OFF //Power-up Timer disabled
#pragma config MCLRE = ON //MCLR pin enabled, RE3 input pin disabled
#pragma config LPT1OSC = OFF //Disabled, T1 operates in standard power mode
#pragma config PBADEN = OFF //PORTB<4:0> pins are configured as digital I/O on Reset
#pragma config STVREN = ON //Stack full/underflow will cause Reset
#pragma config LVP = OFF //Single-Supply ICSP disabled
#pragma config WDT = OFF // NO WATCH DOG TIMER
#define BAUD_RATE_GEN 38
#define UART_BAUD_RATE 19200
void main(void)
{
int go = 0;
int i;
char buffer[20];
//Defining uC-I/O-pin directions --------------------------------------------
TRISC=0x80; //Initialize PORTC, just C7 are used as inputs
//configure USART -----------------------------------------------------------
OpenUSART(USART_TX_INT_ON & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, BAUD_RATE_GEN);
//
for(i = 0; i < 10; i++){
putrsUSART("A"); //Standart baud rate des Bluetooth-Moduls
Delay10KTCYx(20);
putrsUSART("T");
Delay10KTCYx(20);
putrsUSART("L");
Delay10KTCYx(20);
putrsUSART("2");
Delay10KTCYx(20);
putsUSART("A"); //Ist ein Slave...
Delay10KTCYx(20);
putsUSART("T");
Delay10KTCYx(20);
putsUSART("R");
Delay10KTCYx(20);
putsUSART("1");
Delay10KTCYx(20);
}
while(go != 1){
getsUSART(buffer, 20);
if(buffer == "Pair with BT_A2B61AA")
go = 1;
}
putsUSART("ATD0"); //Jeder darf eine Verbindung aufbauen
putsUSART("6624"); //Pincode wird benötigt
while(1)
{
}
}//end main
Am anfag habe ich versucht die Befehle so ATR0 zu schicken und dann habe versucht jede Buchstabe alleine.
Pin Code 6624 ist für die andere Bluetooth ( Andere Bluetooth ist Master und hat das Passwort 6624) und diese andere Bluetooth wird so programmiert, dass wenn sie eine andere Bluetooth sieht, fragt sie über die Verbindung, deswegen soll ich ATD0 schicken und sofort dann fragt sie über das Passwort.
Ich hoffe, dass ihr ein bisschen Zeit habt um mir zu helfen und ich bedanke mich im Voraus.
Gruss,
Yan
Lesezeichen