J'essaye de faire communiquer en uart mon pic et un module bluetooth RN-41 comme cela a été fait dans ce tutoriel du site:
viewtopic.php?f=15&t=191
Voici mon code:
main:
Code : Tout sélectionner
#pragma config FOSC = INTIO67, BOREN = OFF, WDTEN = OFF, LVP = OFF
#include <p18f45k20.h>
#include "uart.h"
void main(void) {
OSCCON = 0b01011100;// 4Mhz à 4MHz
init_uart_blue();
init_bluetooth();
while(1);
return;
}
mes fonctions uart:
Code : Tout sélectionner
#include "uart.h"
void init_uart_blue()
{
TRISC6 = 0;
TRISC7 = 1;
BRGH = 0; /* low/high baud rate */
// On a du 4Mhz
SPBRG = 5; /* set the baud rate 9600 for 4 mhz clock */
SYNC = 0; /* asynchronous */
SPEN = 1; /* enable serial port pins */
CREN = 1; /* enable reception */
TX9 = 0; /* 8- or 9-bit transmission */
RX9 = 0; /* 8- or 9-bit reception */
TXEN = 1; /* enable the transmitter */
}
void send_uart(char data)
{
while (!TXIF);
TXREG = data;
}
void UART_envoi_chaine(char *mot)
{
int i;
int c = 0;
while(i != '\0')
{
send_uart(mot[i]);
i++;
}
}
void init_bluetooth(void)
{
int i =0;
char mode_conf[3] = "$$$";
char nom[7] = "SN,TEST";
UART_envoi_chaine(mode_conf);
while(i<99)
{
i++;
}
UART_envoi_chaine(nom);
}
uart.h
Code : Tout sélectionner
#ifndef UART_HEADER_TEMPLATE_H
#define UART_HEADER_TEMPLATE_H
#include <xc.h>
void init_uart_blue();
void send_uart(char data);
void UART_envoi_chaine(char *mot);
void init_bluetooth(void);
#endif
Pour l'instant j'essaye simplement de changer le nom du module mais je n'y parviens pas :(
Je pense que je m'y prend mal lors de la communication avec le module mais je ne sais pas ce qu'il me manque, Quelqu'un aurait une idée d'ou le problème peut venir ?
Merci d'avance pour votre aide :)