hi,
habe hier ein hc05 modul das von der android app "bluetooth terminal"
als "HC-05" erkannt wird, eine verbindung zum modul scheint möglich.
jedenfalls gibt es keine verbindungs fehler, die android anwendung zeigt
daraufhin ein terminal prompt ähnlich einer bash shell.
bevor die verbindung besteht blinkt die rote led am HC-05 modul
kontinuierlich, nach einem verbindungsaufbau nur noch sporadisch.
der code stammt hier aus dem forum, dort hat er angeblich funktioniert.
eine kleine erweiterung meinersets ist das ein/ausschalten von leds bei
RX / TX.
der gedanke war: wenn daten empfangen wurden, er aber probleme beim
senden hat geht wenigstens kurz die RX led an.
ich bin mir nicht sicher wie oft die ISR von empfang/transmit aufgerufen
wird, falls dies zu häufig passiert würde man die led natürlich nicht
aufleuchten sehen - einfach zu schnell.
hat jemand eine idee was es sein kann? es leuchten weder die leds noch
kommt eine antwort von modul am handy an.
1 | /*
|
2 | * * Bluetooth_Dongle_test.cpp
|
3 | * *
|
4 | * * Created: 18.01.2014 16:59:18
|
5 | * * Author: h0d3nt3uf3l
|
6 | * */
|
7 |
|
8 |
|
9 | #include <avr/io.h>
|
10 | #include <avr/interrupt.h>
|
11 | #include <util/delay.h>
|
12 |
|
13 |
|
14 | //#define F_CPU 800000
|
15 | #define BAUD 9600
|
16 | #define MYUBRR F_CPU/16/BAUD-1
|
17 |
|
18 | uint8_t data;
|
19 |
|
20 |
|
21 | void USART_Init(unsigned int ubrr)
|
22 | {
|
23 | /*Set baud rate*/
|
24 | UBRRH = (unsigned char)(ubrr>>8);
|
25 | UBRRL = (unsigned char)(ubrr);
|
26 | /* Enable receiver and transmitter & Interrupts for RX & TX*/
|
27 | UCSRB = (1<<RXEN) | (1<<TXEN) | (1<<RXCIE) | (1<< TXCIE);
|
28 | /* Set frame format: 8data, 1stop bit */
|
29 | UCSRC = (1<<UCSZ0) | (1<<UCSZ1);
|
30 |
|
31 | }
|
32 |
|
33 | void USART_transmit()
|
34 | {
|
35 | UDR = (data);
|
36 | }
|
37 |
|
38 | int main(void)
|
39 | {
|
40 | DDRD |= (1 << PD6) | (1 << PD7);
|
41 | sei();
|
42 |
|
43 | USART_Init(MYUBRR);
|
44 | _delay_ms(10);
|
45 |
|
46 | while(1)
|
47 | ;
|
48 | }
|
49 |
|
50 | ISR(USART_RXC_vect) //Receive complete
|
51 | {
|
52 | data = UDR;
|
53 | USART_transmit();
|
54 | PORTD |= (1 << PD6); // Turn on LED1
|
55 | PORTD &= ~(1 << PD7); // Turn off LED2
|
56 | }
|
57 |
|
58 | ISR(USART_TXC_vect) //Transmit complete
|
59 | {
|
60 | data = 0;
|
61 | PORTD &= ~(1 << PD6); // Turn off LED1
|
62 | PORTD |= (1 << PD7); // Turn on LED2
|
63 | }
|