Nucleo STM32 F401RE , NodeMCU and TCP Conneciton
Dependencies: BufferedSerial mbed-rtos mbed
Fork of NucleoF401_ESP8622 by
Connection SCHEMA
SOCKET DATA
DETAIL DESCRIPTION
http://veyselkaradag.blogspot.com.tr/
esp8622.cpp@1:4a50b910342c, 2015-02-18 (annotated)
- Committer:
- veyselka
- Date:
- Wed Feb 18 13:41:07 2015 +0000
- Revision:
- 1:4a50b910342c
NUCLEO with NodeMCU AT commands V.1.0.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
veyselka | 1:4a50b910342c | 1 | /* --------------------------------------------------------------------------- |
veyselka | 1:4a50b910342c | 2 | ** This software is in the public domain, furnished "as is", without technical |
veyselka | 1:4a50b910342c | 3 | ** support, and with no warranty, express or implied, as to its usefulness for |
veyselka | 1:4a50b910342c | 4 | ** any purpose. |
veyselka | 1:4a50b910342c | 5 | ** |
veyselka | 1:4a50b910342c | 6 | ** esp8622.ccp |
veyselka | 1:4a50b910342c | 7 | ** NodeMCU serial comminication STM32F401RE Nucleo Board |
veyselka | 1:4a50b910342c | 8 | ** Author: <veyselka@hotmail.com> <v.karadag@gmail.com> Veysel KARADAG |
veyselka | 1:4a50b910342c | 9 | ** -------------------------------------------------------------------------*/ |
veyselka | 1:4a50b910342c | 10 | |
veyselka | 1:4a50b910342c | 11 | #include "esp8622.h" |
veyselka | 1:4a50b910342c | 12 | #include "mbed.h" |
veyselka | 1:4a50b910342c | 13 | |
veyselka | 1:4a50b910342c | 14 | |
veyselka | 1:4a50b910342c | 15 | char rx_buffer[255]; |
veyselka | 1:4a50b910342c | 16 | |
veyselka | 1:4a50b910342c | 17 | int esp8622::sendATTest(void) |
veyselka | 1:4a50b910342c | 18 | { |
veyselka | 1:4a50b910342c | 19 | char resp[32]; |
veyselka | 1:4a50b910342c | 20 | |
veyselka | 1:4a50b910342c | 21 | sendCmd("AT\r\n"); |
veyselka | 1:4a50b910342c | 22 | memset(resp,0,32); |
veyselka | 1:4a50b910342c | 23 | readFromBuffer(resp,DEFAULT_TIMEOUT,10); |
veyselka | 1:4a50b910342c | 24 | |
veyselka | 1:4a50b910342c | 25 | if(strncmp(resp,"AT\r\r\n\r\nOK",9)==0) |
veyselka | 1:4a50b910342c | 26 | return 1; |
veyselka | 1:4a50b910342c | 27 | else |
veyselka | 1:4a50b910342c | 28 | return 0; |
veyselka | 1:4a50b910342c | 29 | |
veyselka | 1:4a50b910342c | 30 | |
veyselka | 1:4a50b910342c | 31 | } |
veyselka | 1:4a50b910342c | 32 | |
veyselka | 1:4a50b910342c | 33 | void esp8622::sendCmd(const char* cmd) |
veyselka | 1:4a50b910342c | 34 | { |
veyselka | 1:4a50b910342c | 35 | esp8622_com.clear(); |
veyselka | 1:4a50b910342c | 36 | esp8622_com.puts(cmd); |
veyselka | 1:4a50b910342c | 37 | } |
veyselka | 1:4a50b910342c | 38 | |
veyselka | 1:4a50b910342c | 39 | |
veyselka | 1:4a50b910342c | 40 | int esp8622::readFromBuffer(char *resp,unsigned int timeout,unsigned int len ) |
veyselka | 1:4a50b910342c | 41 | { |
veyselka | 1:4a50b910342c | 42 | |
veyselka | 1:4a50b910342c | 43 | timeCnt.start(); |
veyselka | 1:4a50b910342c | 44 | int i=0; |
veyselka | 1:4a50b910342c | 45 | |
veyselka | 1:4a50b910342c | 46 | while(1) { |
veyselka | 1:4a50b910342c | 47 | |
veyselka | 1:4a50b910342c | 48 | if(esp8622_com.readable()) { |
veyselka | 1:4a50b910342c | 49 | char c = esp8622_com.getc(); |
veyselka | 1:4a50b910342c | 50 | resp[i]=c; |
veyselka | 1:4a50b910342c | 51 | i++; |
veyselka | 1:4a50b910342c | 52 | if(i>=len) |
veyselka | 1:4a50b910342c | 53 | break; |
veyselka | 1:4a50b910342c | 54 | } |
veyselka | 1:4a50b910342c | 55 | |
veyselka | 1:4a50b910342c | 56 | if(timeCnt.read() > timeout) { |
veyselka | 1:4a50b910342c | 57 | break; |
veyselka | 1:4a50b910342c | 58 | } |
veyselka | 1:4a50b910342c | 59 | } |
veyselka | 1:4a50b910342c | 60 | timeCnt.stop(); |
veyselka | 1:4a50b910342c | 61 | timeCnt.reset(); |
veyselka | 1:4a50b910342c | 62 | // printf("RESP:%s:\r\n",resp); |
veyselka | 1:4a50b910342c | 63 | return 0; |
veyselka | 1:4a50b910342c | 64 | } |