WIFI
Dependencies: mbed
Fork of SerialPassthroughcjsESP8266 by
main.cpp
- Committer:
- wadh4587
- Date:
- 2016-06-15
- Revision:
- 10:f7a48cc24892
- Parent:
- 9:b1344ca3497d
File content as of revision 10:f7a48cc24892:
/* 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" Serial pc(USBTX, USBRX); // serial terminal for the pc connection Serial dev(PTE0,PTE1); // for KL25Z... asuming one can't use the PTA1 version which is the stdio DigitalOut led1(LED1); // twp leds DigitalOut led4(LED2); // to allow visual check of bidirectional comms DigitalOut rst(PTD7); // single digital pin to drive the esp8266 reset line // 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()); wait_us(1); } } // 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() { pc.baud(115200); dev.baud(115200); rst=0; wait(1); rst = 1; // send the esp8266 reset wait(1); pc.attach(&pc_recv, Serial::RxIrq); // attach the two interrupt services dev.attach(&dev_recv, Serial::RxIrq); pc.printf("ok off we go....\n\r"); // wait(10); // pc.printf("AT+RST\n\r"); // wait(20); // pc.printf("AT+CWJAP="CWMWIFI","CWM2016TT""\n\r); while(1) { // (i++)%10; // THIS USED TO BE A SLEEP COMMAND BUT IT WAS CAUSING SOME TROUBLE. } }