www.mikrocontroller.net

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


Autor: T. F. (n3ssaja)
Datum:

Bewertung
0 lesenswert
nicht 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
#include "lpc210x_gnuarm.h"
#include "config.h"
#include "uart.h"

#define BAUD 38400

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

void systemInit(void)
{
  // --- enable and connect the PLL (Phase Locked Loop) ---
  // a. set multiplier and divider
  SCB_PLLCFG = MSEL | (PSEL<<5);
  // b. enable PLL
  SCB_PLLCON = (1<<PLLE);
  // c. feed sequence
  SCB_PLLFEED = PLL_FEED1;
  SCB_PLLFEED = PLL_FEED2;
  // d. wait for PLL lock (PLOCK bit is set if locked)
  while (!(SCB_PLLSTAT & (1<<PLOCK)));
  // e. connect (and enable) PLL
  SCB_PLLCON = (1<<PLLE) | (1<<PLLC);
  // f. feed sequence
  SCB_PLLFEED = PLL_FEED1;
  SCB_PLLFEED = PLL_FEED2;
  
  // --- setup and enable the MAM (Memory Accelerator Module) ---
  // a. start change by turning of the MAM (redundant)
  MAM_MAMCR = 0;  
  // b. set MAM-Fetch cycle to 3 cclk as recommended for >40MHz
  MAM_MAMTIM = MAM_FETCH;
  // c. enable MAM 
  MAM_MAMCR = MAM_MODE;
  
  // --- set VPB speed ---
  SCB_VPBDIV = VPBDIV_VAL;
  
  // --- map INT-vector ---
  #if defined(RAM_RUN)
    SCB_MEMMAP = MEMMAP_USER_RAM_MODE;
  #elif defined(ROM_RUN)
    SCB_MEMMAP = MEMMAP_USER_FLASH_MODE;
  #else
  #error RUN_MODE not defined!
  #endif
}

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

void ledToggle(void)
{
  static unsigned char state=0;
  
  state = !state;
  if (state) GPIO_IOCLR = (1<<LEDPIN);  // set Bit = LED on
  else GPIO_IOSET = (1<<LEDPIN);  // set Bit = LED off (active low)
}

// Main USB

/*
int main(void)
{
  int ch;
  
  systemInit();
  gpioInit();
  
  uart0Init(UART_BAUD(BAUD), UART_8N1, UART_FIFO_8); // setup the UART
  
  uart0Puts("\r\nHello from USB!\r\n");

  
  ledToggle();
  
  while(1) {
    if ((ch = uart0Getch()) >= 0) {
      uart0Puts("You pressed : ");
      uart0Putch(ch);
      uart0Puts("\r\n");
      ledToggle();
    }
  }
  
  return 0;
}
*/

// Main Bluetooth

int main(void)
{
  int ch;
  
  systemInit();
  gpioInit();
  
  uart1Init(UART_BAUD(BAUD), UART_8N1, UART_FIFO_8); // setup the UART
  
  uart1Puts("\r\nHello from Bluetooth!\r\n");
  
  ledToggle();
  
  while(1) {
    if ((ch = uart0Getch()) >= 0) {
      uart1Puts("You pressed : ");
      uart1Putch(ch);
      uart1Puts("\r\n");
      ledToggle();
    }
  }
  
  return 0;
}

Autor: Schaun_wir_mal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.