Skocz do zawartości
Zaloguj się, aby obserwować  
Eposas

Atmega32 i moduł BT HC05

Pomocna odpowiedź

Witam, mam problem z modułami BT HC05, chcę zrobic dwa urządzenia typu master i slave z mastera będę przesyłał znak + (kod ascii to chyba 43) ten drugi odbierze ten znak i zmieni stan diody. Proste urządzenie zeby poduczyc się w tym zakresie. Oczywiście juz na starcie mam sporo problemów jednym z nich jest tak jakby brak komuniakcji między modułami. Znaczy niby dioda za parowanie jest załączona albo jak połacze się laptopem i przez termianl wysle to mi odbeirze i zmieni stan diody. Przesyłam kod bilioteki z Bluebooka M. Kardasia 

Master

char bufor[100];  // bufor roboczy
#define LED_TOG PORTC ^= LED_PIN
#define LED_PIN (1<<PC0)
#define BUZ            	(1<<PB0)
#define BUZ_PORT    	PORTB
#define BUZ_DIR        	DDRB

#define BUZ_OFF        	BUZ_PORT &= ~BUZ
#define BUZ_ON        	BUZ_PORT |= BUZ
#define BEEP        	BUZ_ON; _delay_ms(5); BUZ_OFF

char znak;


int main( void ){
		DDRA |= (1<<PA7);	// ustawiamy kierunek linii podświetlenia LCD jako WYJŚCIE
    	PORTA |= (1<<PA7);	// załączamy podświetlenie LCD - stan wysoki
    	// inicjalizacja buzzera
		BUZ_DIR |= BUZ;
		BUZ_OFF;
		DDRC |= LED_PIN;		// kierunek pinu PC7 – wyjściowy
		PORTC |= LED_PIN;		// wyłączenie diody LED

    	suart_init();
    	lcd_init();

    lcd_str( "HC_05 MASTER" );
    while (1){
//    if (klawisz_wcisniety()) {
    	suart_puts( "49" );
		LED_TOG;
	//	BEEP;
		_delay_ms(1000);
}
        // odsyłamy z powrotem do terminala cały odebrany string

        suart_puts( bufor );
        suart_puts( "\r\n" );

        lcd_cls();
        // wyświetlamy na ekranie LCD odebrany string z terminala
        lcd_str( bufor );


    }

i Slave

#include "SoftUART/soft_uart.h"

char bufor[100];  // bufor roboczy
#define LED1_TOG PORTC ^= LED1_PIN
#define LED1_PIN (1<<PC0)
int main( void )
{
	DDRA |= (1<<PA7);	// ustawiamy kierunek linii podświetlenia LCD jako WYJŚCIE
	    	PORTA |= (1<<PA7);	// załączamy podświetlenie LCD - stan wysoki
    // inicjalizacja soft uart'a
    suart_init();

    	DDRC |= LED1_PIN;
    	    PORTC|= LED1_PIN;
    	  	lcd_init();

    	    lcd_str( "slave" );
char znak;

    while ( 1 ) {

    	 // odbieramy string z terminala (funkcja blokująca)
    	        suart_gets( bufor, sizeof( bufor ) );

    	    	znak = sgetchar();
    	    	if( znak == 43) LED1_TOG;
    	        // odsyłamy z powrotem do terminala cały odebrany string
    	        suart_puts( bufor );
    	        suart_puts( "\r\n" );

    	        lcd_cls();
    	        // wyświetlamy na ekranie LCD odebrany string z terminala
    	        lcd_str( bufor );

    	    }
    	}

 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...