Questo è il codice che ho provato ad utilizzare:
- Codice: Seleziona tutto
/*
* File: main.c
* Author: Utente
*
*/
#include <xc.h>
#include <plib/usart.h>
#include <plib/xlcd.h>
#define _XTAL_FREQ 8000000
//Frequenza del quarzo o del oscillatore interno
#pragma config FOSC = INTOSC_HS && WDT = OFF && PBADEN = OFF && MCLRE = OFF && STVREN = OFF && LVP = OFF
//Oscillatore interno HS
void configurazioni(void){
OSCCON = 0b01110110;
// Imposto il quarzo interno a 8MHz
ADCON1 = 0b00001111;
//Imposto tutti i pin come digitali
TRISBbits.TRISB7 = 0;
//Pin di verifica ricezione
TRISAbits.TRISA0 = 0;
//Pin di output
TRISCbits.TRISC6 = 0;
//Imposto il pin Rx come output
TRISCbits.TRISC7 = 1;
//Imposto il pin Tx come input
OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH & USART_ADDEN_OFF, 51);
//Imposto la USART
}
void main(void) {
configurazioni();
//Impostazioni USART
char data;
while(1){
PORTBbits.RB7 = 1;
//Accendo il led per il test
while(DataRdyUSART());
//Aspetto di ricevere un dato
PORTBbits.RB7 = 0;
//Indica che ho ricevuto un dato
data = ReadUSART();
//Leggo il dato e lo memorizzo nella variabile data
if(data == '1'){
PORTAbits.RA0 = 1;
WriteUSART("Acceso");
}
if(data == '0'){
PORTAbits.RA0 = 0;
WriteUSART("Spento");
}
}
}
Collegamenti:
Pin Rx del modulo al pin Tx del PIC
Pin Tx del modulo al pin Rx del PIC
Alimentazione del modulo 5V, perché non uso il modulo SMD ma quello con 6 pin
Modulo HC-05: configurato come slave, 9600 baud, 1 bit di stop e nessun bit di parità.
Se qualcuno di voi saprebbe come aiutarmi gliene sarei grato, perché non so più dove sbattere la testa per capire come farlo funzionare. Grazie