你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器
谢谢分享
{
if(ESP8266Step.Step < IDLE)
{
ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;
if(ESP8266Step.HalRevSize == MAXREVESIZE)
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);
ESP8266Step.HalRevSize = 0;
}
}
else if(ESP8266Step.Step >= IDLE)
{
TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;
TCPTransmission.TcpRevTime = GetTime();
TCPTransmission.RevFlag = 0xff;
}
}
//接收数量没做限制,有数组越界风险。
//增加限制及处理
新代码如下
void ESP8266HalRevData(uint8_t inPut)
{
if(ESP8266Step.Step < IDLE)
{
ESP8266Step.ReveBuff[ESP8266Step.HalRevSize++] = inPut;
if(ESP8266Step.HalRevSize == MAXREVESIZE)
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);
ESP8266Step.HalRevSize = 0;
}
}
else if(ESP8266Step.Step >= IDLE)
{
TCPTransmission.TcpRxBuff[TCPTransmission.TcpRxSize++] = inPut;
if(TCPTransmission.TcpRxSize >= MAXREVESIZE)
{
memset(ESP8266Step.ReveBuff,0,MAXREVESIZE);
TCPTransmission.TcpRxSize = 0;
TCPTransmission.RevFlag = 0;
}
else
{
TCPTransmission.TcpRevTime = GetTime();
TCPTransmission.RevFlag = 0xff;
}
}
}
欢迎批评指正