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

Dependencies:   mbed

main.cpp

Committer:
qdanilc
Date:
2017-05-23
Revision:
0:c600fe917ab1
Child:
1:cd1fe330bc2a

File content as of revision 0:c600fe917ab1:

#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);
    

}