你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。关注该话题即可发布文章!
{
. _! I. @( p) w3 O: R6 Q6 y5 c+ l4 f
if(ESP8266Step.Step < IDLE)! ]/ ?6 j& N, x1 f% l l
{
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/ ^
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);/ r) _7 r0 _% [" W% |
ESP8266Step.HalRevSize = 0;
}
}
else if(ESP8266Step.Step >= IDLE)0 |1 ?* J9 i7 Q" G( ^6 P
{1 O, e; z: o3 f. ]
TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;
$ I7 C$ X _# C( S0 }; |
8 u+ `# d6 n8 F1 J
TCPTransmission.TcpRevTime = GetTime();
TCPTransmission.RevFlag = 0xff;
}
% D" U) h8 t, @$ I9 [: [: C) P( G6 i' o
}
//接收数量没做限制,有数组越界风险。$ t- y/ x& c! e# a. j, ^
//增加限制及处理8 i# U" K% w- j
新代码如下
void ESP8266HalRevData(uint8_t inPut)) h1 c. e# d& Z
{6 v( {1 b* m5 y: }4 a$ E
if(ESP8266Step.Step < IDLE)
{
ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;6 [! k9 u+ n; D$ u6 @, ~+ C
if(ESP8266Step.HalRevSize == MAXREVESIZE)0 W. A5 D. G0 Z3 }7 f
{
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
}
else if(ESP8266Step.Step >= IDLE)1 f6 d1 t% [% S* _
{
TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;$ k" q7 \+ n2 K/ v3 c- X- y" D
if(TCPTransmission.TcpRxSize >= MAXREVESIZE)) |$ T$ H; O$ |. S: {
{
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
{
TCPTransmission.TcpRevTime = GetTime();$ T$ [6 |6 m8 r* J; x
TCPTransmission.RevFlag = 0xff;
} 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# }# }