|
请问ESP8266_RxNew函数应该怎么使用?我看V7的“ESP8266串口WIFI模块TCP客户端”中是这样用的
if (g_TCPServerOk == 1)
{
cmd_len = ESP8266_RxNew(cmd_buf, &tcpid);
if(cmd_len >0)
printf("\r\n接收到数据长度 = %d\r\n远程ID =%d\r\n数据内容=%s\r\n", cmd_len, tcpid, cmd_buf);
}
。。。。。。
case JOY_DOWN_R: /* 摇杆右键按下,向TCP客户端发送数据 */
g_TCPServerOk = 1;
ESP8266_SendTcpUdp(tcpid, (uint8_t *)WriteText, sizeof(WriteText));
break;
我理解的是如果TCP建立连接后,如果不按其他按键,那么g_TCPServerOk 就是 1,然后只按右键就向客户端发送数据。如果收到客户端数据就通过串口打印出来,一直循环下去。
我在初始化时让g_TCPServerOK=1,然后主程序的while循环中是如下程序:
while (1)
{
if (g_TCPServerOk)
{
RxBuf_len = ESP8266_RxNew(RxBuf,0);
if (RxBuf_len > 0)
{
ComSendBuf(COM1, RxBuf, RxBuf_len);
}
}
else
{
/* 将 COM_ESP8266 口接收到数据转发到 COM1 */
if (comGetChar(COM_ESP8266, &Value))
{
comSendChar(COM1, Value);
}
/* 将 COM1 口接收到数据转发到 COM_ESP8266 */
if (comGetChar(COM1, &Value))
{
comSendChar(COM_ESP8266, Value);
}
}
KeyCode = bsp_GetKey();
if (KeyCode > 0)
{
switch(KeyCode)
{
case JOY_DOWN_OK:
ESP8266_SendTCPUDP(0, data1, 10);
break;
default:
break;
}
}
}
服务器(ESP8266)向客户端(电脑)发送数据正常,一旦客户端发送数据,程序就跑到了HardFault_Handler了。如果只是else以下的程序,接收和发送都没有问题。所以想请问是不是ESP8266_RxNew使用方法不对?
|
|