WIFI
Dependencies: mbed
Fork of SerialPassthroughcjsESP8266 by
main.cpp
- Committer:
- cstevens
- Date:
- 2016-06-07
- Revision:
- 7:d78ed22a787d
- Parent:
- 6:dc4c165f6b53
- Child:
- 8:34cc66421054
File content as of revision 7:d78ed22a787d:
/* Simpler prog based on the serial passthrough code to enable a command line driven test of esp8266 * wifi modules. * NB this uses the mbed sleep() command to form a low power system but on some MCUs this is a problem * this works fine on an lpc1768 but not as yet on the KL25Z */ #include "mbed.h" RawSerial pc(USBTX, USBRX); // serial terminal for the pc connection RawSerial dev(p28,p27); // serial uart for connecting to the esp8266 tx,rx NB mbed tx must connect ot esp rx and vice versa DigitalOut led1(LED1); // twp leds DigitalOut led4(LED4); // to allow visual check of bidirectional comms DigitalOut rst(p26); // subroutine to run anytime a serial interrupt arrives from the device // this basically passes everything thatthe device produces on to the pc terminal screen void dev_recv() { led1 = !led1; while(dev.readable()) { pc.putc(dev.getc()); } } // subroutine to service the serial interrupt on the pc connection // this is a bit more complex - it takes what the use sends on the pc and copies it on to the device // the esp should echo these straight back to the the pc if all is well // this also detects the end of command character which is ascii 13 (0x0d) adn adds a linefeed after it =asscii 10 (0x0a) void pc_recv() { char c; led4 = !led4; while(pc.readable()) { c=pc.getc(); dev.putc(c); //pc.putc(c); // echo back if(c==13) {dev.putc(10); // send the linefeed to complement the carriage return generated by return key on the pc pc.putc(10); } } } int main() { rst=0; wait(1); rst=1; wait(1); pc.printf("go\n\r"); pc.baud(115200); dev.baud(115200); pc.attach(&pc_recv, Serial::RxIrq); dev.attach(&dev_recv, Serial::RxIrq); while(1) { sleep(); } }