Bluetooth Ansteuerung über UART1 mit LPC2136

OP #1546622
Hallo zusammen,

Ich habe Folgendes Problem. Ich besitze ein Mikrocontroller Board mit 
einem Mikrocontroller von Philips LPC2136. Nun möchte ich ein 
Bluetoothmodul (MITSUMI BLUETOOTH WML-C46A), dass auf dem Board bereits 
verbaut ist, über die UART1 ansprechen und ein Char Zeichen vom PC über 
die Bluetooth Schnittstelle an den Mikrocontroller senden. Dieser gibt 
im Anschluss das Zeichen via Bluetooth an ein Terminalprogramm auf den 
PC zurück und visualisiert es. Bei jeder Eingabe soll zudem noch eine 
LED, die auf dem Board verbaut ist getoggelt werden.
Eine Serielle Übertragung über USB mit der UART0 Schnittstelle habe ich 
bereits realisiert und klappt auch einwandfrei (siehe Code).



Hier mein fertiger Code für die USB Übertragung sowie der bisheriger 
Code für die Bluetoothübertragung (Achtung: Derzeit sind zwei Main 
Funktionen implementiert)

Vielleicht sieht einer den Fehler von Euch.

Gruß n3ssaja
1
#include "lpc210x_gnuarm.h"
2
#include "config.h"
3
#include "uart.h"
4

5
#define BAUD 38400
6

7
// olimex LPC-P2106: one led on P0.7 (active low)
8
#define LEDPIN  23
9

10
void systemInit(void)
11
{
12
  // --- enable and connect the PLL (Phase Locked Loop) ---
13
  // a. set multiplier and divider
14
  SCB_PLLCFG = MSEL | (PSEL<<5);
15
  // b. enable PLL
16
  SCB_PLLCON = (1<<PLLE);
17
  // c. feed sequence
18
  SCB_PLLFEED = PLL_FEED1;
19
  SCB_PLLFEED = PLL_FEED2;
20
  // d. wait for PLL lock (PLOCK bit is set if locked)
21
  while (!(SCB_PLLSTAT & (1<<PLOCK)));
22
  // e. connect (and enable) PLL
23
  SCB_PLLCON = (1<<PLLE) | (1<<PLLC);
24
  // f. feed sequence
25
  SCB_PLLFEED = PLL_FEED1;
26
  SCB_PLLFEED = PLL_FEED2;
27
  
28
  // --- setup and enable the MAM (Memory Accelerator Module) ---
29
  // a. start change by turning of the MAM (redundant)
30
  MAM_MAMCR = 0;  
31
  // b. set MAM-Fetch cycle to 3 cclk as recommended for >40MHz
32
  MAM_MAMTIM = MAM_FETCH;
33
  // c. enable MAM 
34
  MAM_MAMCR = MAM_MODE;
35
  
36
  // --- set VPB speed ---
37
  SCB_VPBDIV = VPBDIV_VAL;
38
  
39
  // --- map INT-vector ---
40
  #if defined(RAM_RUN)
41
    SCB_MEMMAP = MEMMAP_USER_RAM_MODE;
42
  #elif defined(ROM_RUN)
43
    SCB_MEMMAP = MEMMAP_USER_FLASH_MODE;
44
  #else
45
  #error RUN_MODE not defined!
46
  #endif
47
}
48

49
void gpioInit(void)
50
{
51
  GPIO_IOSET  = (1<<LEDPIN);  // set Bit = LED off (active low)
52
  GPIO_IODIR |= (1<<LEDPIN);  // define LED-Pin as output
53
}
54

55
void ledToggle(void)
56
{
57
  static unsigned char state=0;
58
  
59
  state = !state;
60
  if (state) GPIO_IOCLR = (1<<LEDPIN);  // set Bit = LED on
61
  else GPIO_IOSET = (1<<LEDPIN);  // set Bit = LED off (active low)
62
}
63

64
// Main USB
65

66
/*
67
int main(void)
68
{
69
  int ch;
70
  
71
  systemInit();
72
  gpioInit();
73
  
74
  uart0Init(UART_BAUD(BAUD), UART_8N1, UART_FIFO_8); // setup the UART
75
  
76
  uart0Puts("\r\nHello from USB!\r\n");
77

78
  
79
  ledToggle();
80
  
81
  while(1) {
82
    if ((ch = uart0Getch()) >= 0) {
83
      uart0Puts("You pressed : ");
84
      uart0Putch(ch);
85
      uart0Puts("\r\n");
86
      ledToggle();
87
    }
88
  }
89
  
90
  return 0;
91
}
92
*/
93

94
// Main Bluetooth
95

96
int main(void)
97
{
98
  int ch;
99
  
100
  systemInit();
101
  gpioInit();
102
  
103
  uart1Init(UART_BAUD(BAUD), UART_8N1, UART_FIFO_8); // setup the UART
104
  
105
  uart1Puts("\r\nHello from Bluetooth!\r\n");
106
  
107
  ledToggle();
108
  
109
  while(1) {
110
    if ((ch = uart0Getch()) >= 0) {
111
      uart1Puts("You pressed : ");
112
      uart1Putch(ch);
113
      uart1Puts("\r\n");
114
      ledToggle();
115
    }
116
  }
117
  
118
  return 0;
119
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.