Bluetooth HC05 + KL25Z communicate with Bluetooth dongle in PC in both directions.

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
GerritPathuis
Date:
Fri Dec 08 19:27:13 2017 +0000
Parent:
1:e73a7c99f767
Commit message:
Works

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Sun Dec 03 13:49:58 2017 +0000
+++ b/main.cpp	Fri Dec 08 19:27:13 2017 +0000
@@ -14,17 +14,16 @@
  * Open Tera Term session to connect to KL25Z
  * and
  * Open second Tera Term session to read the Bluetooth
- * dongle in the PC
+ * dongle in the PC set at 38400 baud
  *
- * Make sute Tera Term uses 9600 baud
  * http://www.wavesen.com
 */
 
 #include "mbed.h"
 #include "MODSERIAL.h"
 
-MODSERIAL  pc(USBTX, USBRX);
-MODSERIAL  blue(PTE0, PTE1);          // TX, RX
+MODSERIAL  pc(USBTX, USBRX, 256, 256);
+MODSERIAL  blue(PTE0, PTE1, 256, 256);          // TX, RX
 
 DigitalOut myled1(LED1);    //Blue
 DigitalOut myled2(LED2);    //Green
@@ -32,7 +31,7 @@
 // This function is called when a character received from PC
 void pc_rxCallback(MODSERIAL_IRQ_INFO *q)
 {
-    char c;
+    int c;
 
     c= pc.getc();
     blue.putc(c);   // Send from PC to Blue
@@ -42,7 +41,8 @@
 // This function is called when a character received from Bluetooth
 void blue_rxCallback(MODSERIAL_IRQ_INFO *q)
 {
-    char b;
+    //char b;
+    int b;
 
     myled1 = !myled1;
     b= blue.getc();
@@ -51,8 +51,12 @@
 
 int main()
 {
-    pc.baud(115200);
+    char c = 'A';
+
+    pc.baud(9600);
+    pc.format(8,SerialBase::None,1);
     blue.baud(38400);                // Default Bluetooth Baudrate
+    blue.format(8,SerialBase::None,1);
 
     pc.printf("Bluetooth HC-05\r\n");
     pc.printf("Make sure the terminal programm ends with CR-LF\r\n");
@@ -68,34 +72,49 @@
 
 
     // Set up
-    pc.puts("AT=");
+    pc.puts("\r\nAT=");
     blue.puts("AT\r\n");
-    wait_ms(100);
+    wait_ms(1000);
 
-    pc.puts("AT+VERSION?= ");
+    pc.puts("\r\nAT+VERSION?= ");
     blue.puts("AT+VERSION?\r\n");
-    wait_ms(100);
+    wait_ms(1000);
 
-    pc.puts("AT+ADDR?= ");
+    pc.puts("\r\nAT+ADDR?= ");
     blue.puts("AT+ADDR?\r\n");
-    wait_ms(100);
+    wait_ms(1000);
 
-    pc.puts("AT+NAME?= ");
+    pc.puts("\r\nAT+NAME?= ");
     blue.puts("AT+NAME?\r\n");
-    wait_ms(100);
+    wait_ms(1000);
+
+    pc.puts("\r\nAT+UART=38400,0,0");       //No parity, 1 Stop bit
+    blue.puts("AT+UART=38400,0,0\r\n");     //No parity, 1 Stop bit
+    wait_ms(1000);
 
-    pc.puts("AT+Role?= ");
-    blue.puts("AT+Role? \r\n");
-    wait_ms(100);
+    pc.puts("\r\nAT+UART?= ");
+    blue.puts("AT+UART?\r\n");
+    wait_ms(1000);
+
+    pc.puts("\r\nAT+Role?= ");
+    blue.puts("AT+Role?\r\n");
+    wait_ms(1000);
 
-    // Echo back characters
+    pc.puts("\r\nAT+RESET= ");
+    blue.puts("AT+RESET\r\n");
+    wait_ms(1000);
+
+
+    // Send the alphabet
     while (1) {
-        if (blue.readable()) {
-            pc.putc(blue.getc());
-        }
-        if (pc.readable()) {
-            blue.putc(pc.getc());
+        for (int loop = 0; loop < 512; loop++) {
+
+            blue.printf("%c", c);
+            c++;
+            if (c > 'Z') c = 'A';
+            if (loop > 510) loop  = 0;
+
+            wait_ms(100);
         }
     }
-
 }
\ No newline at end of file