Skocz do zawartości

Bluetooth


Mateusz

Pomocna odpowiedź

Witam.

Proszę zerknijcie co zrobiłem nie tak 🙂 Bo mi nie najlepiej działa ten bluetooth.

Zielona dioda cały czas się świeci, Czerwona miga jak coś wysyłam. Ale nie mogę się z urządzeniem połączyć z kompa.

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdlib.h>	// for itoa() call
#include <stdio.h>	// for printf() call


#define SetBit(x,y)	x |= (1<<y)
#define ClrBit(x,y) x &= ~(1<<y)
#define NegBit(x,y) x ^= (1<<y)


volatile unsigned char bufor_RXD=0;
volatile int a=1;               

void send_string(char *string)
{
  char znak;
  while (0!=(znak=*(string++)))
  {
  while ( !( UCSRA & (1<<UDRE)) );
  UDR=znak;
  }

  while ( !( UCSRA & (1<<UDRE)) );
  UDR = 0b00001010;
} 


ISR (USART_RXC_vect)
{
	bufor_RXD = UDR;
a=1;
}


int main(void)
{

//ustawienia portów I/O
	DDRD  = 0b00000000;   	
	DDRA  = 0b11111111;   	


//1 - oznacza wyjście  0 - wejście
	PORTA = 0b00000000;
PORTA = 0b10011001;   // diowy. 0 - zapalona

//**************************************
//ustawienie USART
//**************************************

UCSRB = 0b00011000;
UCSRC = 0b00000110;
unsigned int baud=51;
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;	   		//prędkość transmisji 19200
SetBit(UCSRB,7);      	//włączenie przerwania od USART RX

sei();

char buf[10];
int num=3000;

 while(1)
 {    	

	if(a==1)
	{
		sprintf(buf,"%d %d\n ", num, num);
		a=1;
		send_string(buf);
	}

	_delay_ms(1000);
 }
}

Link do komentarza
Share on other sites

Odpuściłbym sobie takie patenty na połączeniach komunikacyjnych. Jeżeli koniecznie chcesz diody sygnalizujące transmisję to podłącz je sobie bezpośrednio do atmegi i zapalaj/gasiś je przy zapisie do rejestru UART i na przerwaniach UART.

Link do komentarza
Share on other sites

Jeżeli nie jesteś w stanie uzyskać połączenia PC<->BT-x22 - to prawdopodobnie źle coś polutowałeś bo sam układ po podaniu napięcia zasilającego powinien być w stanie sparować się z komputerem(przeprowadzić transmisję też).

Jeżeli problem jest już z transmisją to zastanowiłbym się nad tymi diodami.

Wybacz ale kodu nie sprawdzę bo nigdy nie chciało mi się baudów liczyć, zawsze korzystałem z makr w setbaud.h.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.