WCH沁恒单片机
直播中

李浯

7年用户 1050经验值
私信 关注
[问答]

CH392的TCP_Serve例程无法发送数据怎么解决?

在Socket0接收中断中,可以将接收的数据发给客户端:
if(sock_int_socket & SINT_STAT_RECV)                              /* 接收中断 */
    {
        len = CH392GetRecvLength(sockindex);                          /* 获取当前缓冲区内数据长度 */


        if(len)
        {
            memset(SPI0_buf, 0, sizeof(SPI0_buf));
            CH392GetRecvData(sockindex, len, SPI0_buf);
            //CH392SendData(sockindex, SPI0_buf, len);   //可以发送
            SPIRec_len = len;                                             
        }
    }


但是在其他函数体中(比如当UART0接收到数据后),执行同样的函数CH392SendData(UINT8 sockindex, PUINT8 databuf, UINT16 len),客户端却接收不到数据。已经证实CH392SendData已经执行,请问是什么原因?程序要怎么写?
  
  

回帖(1)

张厉界

2022-10-13 10:39:46
socket0作为TCP_SERVER收发数据不会是socket0的接收中断,您仔细对照一下socket索引号。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分