Forum: Mikrocontroller und Digitale Elektronik Bluetooth Ansteuerung über UART1 mit LPC2136


von T. F. (n3ssaja)


Lesenswert?

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
}

von Schaun_wir_mal (Gast)


Lesenswert?

Hallo,

welchen Fehler gilt es denn zu finden? Werde aus dem Text nicht so ganz 
schlau um welchen es denn eigentlich geht.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.