你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

简单的状态机框架,让所有人快玩转WIFI以及GPRS模块  

[复制链接]
技术范儿 发布时间:2016-11-21 13:40
赞 收藏 3 评论23 发布时间:2016-11-21 13:40
23个回答
epochal 回答时间:2017-9-22 22:00:55
好东西!谢谢分享!
会飞的雪花 回答时间:2017-9-22 22:35:11
void ESP8266HalRevData(uint8_t inPut)% A( o1 E2 U) a' }: x
{
! ]- {9 x9 M( N  h7 ~      . _! I. @( p) w3 O: R6 Q6 y5 c+ l4 f
        if(ESP8266Step.Step < IDLE)! ]/ ?6 j& N, x1 f% l  l
        {
, s+ U+ V" ]: a5 x) V5 Y2 x                ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;1 \* o6 B* @9 w5 M3 _) H3 I( Z
        if(ESP8266Step.HalRevSize == MAXREVESIZE)4 P1 a/ R9 f. y  H/ ^
        {
; d& t. _4 H: ~* I: @( w+ E            memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);/ r) _7 r0 _% [" W% |
            ESP8266Step.HalRevSize = 0;
, {5 \5 R" i6 s( j' a2 O  @        }
+ @7 [1 H( H! p/ w( x. G        }
6 O" }6 u! J6 Y7 p( d0 ?0 n$ K        else if(ESP8266Step.Step >= IDLE)0 |1 ?* J9 i7 Q" G( ^6 P
        {1 O, e; z: o3 f. ]
        TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;
9 r9 X" ^# i* R8 T, a/ o$ I7 C$ X  _# C( S0 }; |
8 u+ `# d6 n8 F1 J
            TCPTransmission.TcpRevTime = GetTime();
1 U$ o3 U3 l, W9 D  c" _        TCPTransmission.RevFlag = 0xff;
/ B  x+ o0 ^% |6 y" B        }
& P  g0 M0 E; @                % D" U) h8 t, @$ I9 [: [: C) P( G6 i' o
}
! ]. s, D" @( j4 u//接收数量没做限制,有数组越界风险。$ t- y/ x& c! e# a. j, ^
//增加限制及处理8 i# U" K% w- j
新代码如下
4 f$ C' r! w+ @: i) dvoid ESP8266HalRevData(uint8_t inPut)) h1 c. e# d& Z
{6 v( {1 b* m5 y: }4 a$ E
      
" b7 Y& N2 v6 @        if(ESP8266Step.Step < IDLE)
* _5 d! W: |( z& [+ ?. Q9 S" I' u  U* x        {
+ F8 k8 w+ V; o; o% W  Q, s3 I                ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;6 [! k9 u+ n; D$ u6 @, ~+ C
        if(ESP8266Step.HalRevSize == MAXREVESIZE)0 W. A5 D. G0 Z3 }7 f
        {
: {" G6 M( v  z            memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);$ q+ ~: w/ U/ O7 O' h% N/ r
            ESP8266Step.HalRevSize = 0;, X3 S( H% }$ Q' g* a' \3 U
        }' p6 x' \% \$ l4 p0 p) b: `" s; N
        }
3 ?* F2 v0 W3 R4 `# z        else if(ESP8266Step.Step >= IDLE)1 f6 d1 t% [% S* _
        {
7 y$ ~/ W6 y9 q. N        TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;$ k" q7 \+ n2 K/ v3 c- X- y" D
                    if(TCPTransmission.TcpRxSize >= MAXREVESIZE)) |$ T$ H; O$ |. S: {
        {
3 t4 q0 t. e& q8 F            memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);) {( }$ a. ?: ~9 }9 r
            TCPTransmission.TcpRxSize = 0;, P/ K. f5 {- E' }4 e
                                          TCPTransmission.RevFlag = 0;- E2 w6 N" ^, L
        }1 e2 c3 d6 J3 ]4 @. i
                                else# g! y% ^7 b+ o
                                {
6 a4 D& T/ S. a, W                                        TCPTransmission.TcpRevTime = GetTime();$ T$ [6 |6 m8 r* J; x
          TCPTransmission.RevFlag = 0xff;
" |( P7 {. p+ h4 V; ~                                }              7 P; E+ u& r. L# z
        }                # x& S$ \8 Z7 d: C  V- i. `
}) I# u1 U3 X* d  V4 n; Y
$ K: F2 D: v( L4 k' m1 d
欢迎批评指正" a( e! Q" ?$ \; W4 M. O" g# }# }

5 ]8 J* ?+ A3 I8 J0 d
大陶 回答时间:2017-10-18 13:35:33
谢谢分享的
710184559 回答时间:2018-5-11 19:32:30
非常感谢,正需要做GPRS这块
zsaniu 回答时间:2018-8-30 17:02:25
谢谢分享,正好项目用到esp8266模块,可以参考一下流程
newphj 回答时间:2018-8-30 21:13:20
正好用上
西点钟灵毓秀 回答时间:2018-8-31 13:36:45
mark 了再来
00dd 回答时间:2018-9-29 15:41:49
ESP8266TCP_Struct
x88484532 回答时间:2020-10-29 08:50:57
下了学习,谢谢分享。
12
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版