Test usb connection

Dependencies:   BufferedSerial MODSERIAL mbed

You can find more infos in this notebook: HERE

Files at this revision

API Documentation at this revision

Comitter:
edodm85
Date:
Sat Aug 20 17:33:55 2016 +0000
Commit message:
First commit

Changed in this revision

BufferedSerial.lib Show annotated file Show diff for this revision Revisions of this file
MODSERIAL.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BufferedSerial.lib	Sat Aug 20 17:33:55 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/sam_grove/code/BufferedSerial/#a0d37088b405
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MODSERIAL.lib	Sat Aug 20 17:33:55 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/AjK/code/MODSERIAL/#ae0408ebdd68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Aug 20 17:33:55 2016 +0000
@@ -0,0 +1,126 @@
+#define Modserial
+
+#include "mbed.h"
+
+#ifdef Modserial
+#include "MODSERIAL.h"
+#else
+//#include "BufferedSerial.h"
+#endif
+
+
+DigitalOut led1(LED1);
+DigitalOut led4(LED4);
+
+#ifdef Modserial
+MODSERIAL pc(USBTX,USBRX);
+#else
+RawSerial pc(USBTX,USBRX);
+#endif
+
+
+bool new_send = false;
+void parse_cmd(int sizeCMD);
+char bufferRX[50];
+int i = 0;
+
+
+// interrupt call
+#ifdef Modserial
+void rxCallback(MODSERIAL_IRQ_INFO *q)
+{
+     new_send = true;
+}
+#else
+void rxCallback()
+{
+    led1 = 1;
+
+    char test = pc.getc();
+    if(test != '\n')
+    {
+         bufferRX[i] = test;
+         i++;
+    }else
+    {
+        new_send = true;
+    }
+    led1 = 0;
+    return;
+}
+#endif 
+
+
+
+
+int main() 
+{
+    pc.baud(9600);       
+    pc.printf("SystemCoreClock: %dMHz\r\n", SystemCoreClock/1000000);       // print the clock frequency
+    led4 = 0;
+    int n = 0;
+    
+
+    #ifdef Modserial
+    pc.attach(&rxCallback);
+    #else
+    pc.attach(&rxCallback, Serial::RxIrq);
+    #endif 
+ 
+ 
+    while(1) 
+    { 
+        #ifdef Modserial
+        if(new_send)
+        {
+            int i = 0;
+            led1 = 1;
+            
+            while(pc.readable())
+            {
+                bufferRX[i] = pc.getc();
+                i++;
+            }
+            parse_cmd(i);
+            led1 = 0; 
+        }
+        #else
+        if(new_send)
+        {
+
+            parse_cmd(i);        
+          
+            memset(bufferRX, 0, sizeof(bufferRX));
+            new_send = false;
+            i = 0;
+        }
+        #endif             
+        wait_ms(50);
+        n++;
+        if(n == 10)
+        {
+            led4 = !led4;
+            n = 0;
+        }
+    }
+}
+
+
+
+
+
+void parse_cmd(int sizeCMD)
+{
+        new_send = false;
+        
+        
+        pc.printf("bufferRX: %s\r\n", bufferRX);
+        
+               
+        if(strcmp("ciao", bufferRX) == 0)              
+        {
+            pc.printf("Test OK\r\n");   
+        }
+        
+        memset(bufferRX, 0, sizeof(bufferRX)); 
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Aug 20 17:33:55 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/2241e3a39974
\ No newline at end of file