Communicates with the WiFi - be very careful when using as it is tempremental.

Dependencies:   mbed

Revision:
0:c600fe917ab1
Child:
1:cd1fe330bc2a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue May 23 16:00:20 2017 +0000
@@ -0,0 +1,67 @@
+#include "mbed.h"
+#include "RawSerial.h"
+
+
+DigitalOut VCCPin (PTC0);     //setup the other wifi pins
+DigitalOut rstPin (PTC10);
+DigitalOut chpdPin (PTC11);
+DigitalOut GNDPin (PTC6);
+
+
+RawSerial esp (PTC4, PTC3, 115200); //setup a serial to the  Tx = PTC4 and  Rx = PTC3 pins at baud rate 115200
+
+Serial pc(USBTX, USBRX);
+
+DigitalOut redLED(LED1); // twp leds  
+DigitalOut greenLED(LED2); // to allow visual check of bidirectional comms
+DigitalOut blueLED(LED3);  //to prove it's working
+
+char input; //character to store inputs/outputs in communication
+
+
+void reset() {   //resets the module by turning rst off for 2 seconds then on again
+    rstPin = 0;
+    wait(2);
+    rstPin = 1;
+    
+}
+void esp_recv()
+{
+    redLED = !redLED;
+    while(esp.readable()) {
+        pc.putc(esp.getc());
+        //wait_us(1);
+    }
+}
+void pc_recv()
+{
+    char c;
+    greenLED = !greenLED;
+    while(pc.readable()) {
+        c=pc.getc();
+        esp.putc(c);
+        pc.putc(c); // echo back
+        if(c==13) {
+            esp.putc(10); // send the linefeed to complement the carriage return generated by return key on the pc
+            pc.putc(10);
+        }
+    }
+}
+
+int main() {
+    //initialise the pins
+    
+    VCCPin = 1;
+    rstPin = 1;
+    chpdPin = 1;
+    GNDPin = 0;
+    
+    reset();    //perform an initial reset
+    
+    blueLED = 1; //turn on test light
+
+    pc.attach(&pc_recv, Serial::RxIrq); // attach the two interrupt services
+    esp.attach(&esp_recv, Serial::RxIrq);
+    
+
+}
\ No newline at end of file