前段时间,在NXP帮别人简单的封装了一套ESP8266的WIFI的库,直接用的AT指令挂到单片机上面跑的,临时做的用的是STA模式,TCPClient,由于买的模块各种问题(市面上很多ESP8266的模块,买回来请注意把指令都测试一下),连不上路由,在社区共享给后也没有人提出反馈。。。。。。所以临时就这么搁置了,指令通过串口测试了各个状态之间切换正常。不保**完没有BUG,但是提供了一个简洁的状态机框架,轻松改下即可用到GPRS、蓝牙等加他AT指令集的模块,希望对大家有帮助![]() |
ESP8266.zip
下载12.23 KB, 下载次数: 583
æºä»£ç
微信公众号
手机版
{
if(ESP8266Step.Step < IDLE)
{5 {) i8 S& b6 F( @5 J
ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;4 T; V6 v9 N5 N- _
if(ESP8266Step.HalRevSize == MAXREVESIZE)
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);; C" y5 a0 S& b* O
ESP8266Step.HalRevSize = 0;$ w2 r9 X+ p9 A# f ]7 x6 X
}
}
else if(ESP8266Step.Step >= IDLE)
{& p, o1 q3 t% C3 p9 |: ]
TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;' n' O8 P5 J% S {% O
TCPTransmission.TcpRevTime = GetTime();: W( m! w% @: I1 Z! ?- A
TCPTransmission.RevFlag = 0xff;! i ?7 w/ {! a9 c# X- n
}+ n" H1 I) F9 \$ V- {& A, ~
}- c& r1 i1 `7 t6 G5 `" W
//接收数量没做限制,有数组越界风险。
//增加限制及处理1 i/ t6 ~/ L j
新代码如下" _4 W3 b" j. X* X1 w8 @' I
void ESP8266HalRevData(uint8_t inPut)
{
$ T7 U" w( `% q% Y# ~: p% c6 H' W4 N: ~
if(ESP8266Step.Step < IDLE)
{
ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;8 u9 ], N* [* o6 l
if(ESP8266Step.HalRevSize == MAXREVESIZE)
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);- w" z& v7 p$ @* u$ f s
ESP8266Step.HalRevSize = 0;
}1 t/ O% Y5 M' u; L
}5 B% l6 B5 N' C5 Y& H
else if(ESP8266Step.Step >= IDLE)
{0 B V: i" B6 R/ ^5 m
TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;/ ?# |/ C4 d& N: `+ w( q
if(TCPTransmission.TcpRxSize >= MAXREVESIZE)" C+ _1 r8 | H- O- V( A
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);. V/ U* P/ q5 _: B4 O* ]/ E
TCPTransmission.TcpRxSize = 0;2 N4 L. k( R( U' L" f
TCPTransmission.RevFlag = 0;
}* J6 ?1 o9 q! ]2 i+ N
else
{
TCPTransmission.TcpRevTime = GetTime();2 b. {1 t+ ~/ M
TCPTransmission.RevFlag = 0xff;% v! B1 _! w; Y
}
}
}
欢迎批评指正
$ a m- f9 V" L" v$ {0 r
这套是我根据买的模块测试的一个流程。我的模块偶尔可以连上,连不上的时候咋都连不上,不知道是不是模块问题,你可以试试,有BUG就自己改吧,年底了项目紧没时间折腾了
谢谢分享