RAK411 socket通信必须收到数据后才能发送数据



  • socket通信,如果没有收到过数据,发送数据rak_send_data之后rak_checkPktIrq(),dataPacketPending和sendFull都会置1,读取数据后两个状态清零,但是再次发送还是一样的情况。如果收到过一次数据,就会正常,请教这是什么问题呢?代码如下:

    while (1)
    {
    //if(Send_RecieveDataFlag==RAK_TRUE)
    {
    Send_RecieveDataFlag=RAK_FALSE;
    rak_send_data(0,0,0, sizeof(udp_broadcast),(uint8_t *)(&udp_broadcast[0]));
    printf("socket_flag:%d\r\n",uCmdRspFrame.recvFrame.socket_flag);
    }
    while(WIFI_INT){//平时终端引脚为低电平
    if(rak_checkPktIrq() == RAK_TRUE)
    {
    rak_read_packet(&uCmdRspFrame);
    rak_clearPktIrq();
    if(uCmdRspFrame.rspCode[0]==RSPCODE_RECV_DATA)
    {
    Send_RecieveDataFlag=RAK_TRUE;
    }
    }
    aa=rak_checkPktIrq();
    }
    }



  • 你是建立的TCP吗?你在调用rak_send_data时请指定IP和地址以及Socket标识符试试。


登录后回复
 

与 RAK支持中心 的连接断开,我们正在尝试重连,请耐心等待