完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大佬们,小弟最近用ucos ii + lwip做tcp server。现在只是做一个简单的回传实验,一共创建两个任务,一个收一个发的,收的任务收到数据之后拷贝到发送buffer,给发的任务发一个信号量,但是一直卡死在netconn_accept里面。err一直是-3,也就是连接超时,调试软件那边连接的时候也显示1035 未知错误,有大佬遇到过这种情况么,小弟lwip新手,刚开始接触这个。下面是我的代码:
[C] 纯文本查看 复制代码 void taskTcpServerRecv(void *data){ err_t err; OS_CPU_SR cpu_sr; uint32_t dataCount = 0; newTcpServerDataReceivedSem = OSSemCreate(0); OSEventNameSet(newTcpServerDataReceivedSem,"TcpServerDataReady",(INT8U *)&err); struct netbuf *recvBuff; tcpServerConn = netconn_new(NETCONN_TCP); if(tcpServerConn) { err = netconn_bind(tcpServerConn,IP_ADDR_ANY,8088); err = netconn_listen(tcpServerConn); tcpServerConn->recv_timeout = 500; for(;;) { err = netconn_accept(tcpServerConn,&newTcpServerConn); if(err == ERR_OK) { newTcpServerConn->recv_timeout = 10; for(;;) { err = netconn_recv(newTcpServerConn,&recvBuff); if((err == ERR_OK) && (recvBuff != NULL)) { OS_ENTER_CRITICAL(); memset(TCPServerBuff.rxBuffer,0,TCPServerBuff.rxBufferSize); for(struct pbuf *q = recvBuff->p;q != NULL;q = q->next) { if(q->len > (TCPServerBuff.rxBufferSize - dataCount)) memcpy(TCPServerBuff.rxBuffer + dataCount,q->payload,(TCPServerBuff.rxBufferSize - dataCount)); else memcpy(TCPServerBuff.rxBuffer + dataCount,q->payload,q->len); dataCount += q->len; if(dataCount > TCPServerBuff.rxBufferSize) break; } OS_EXIT_CRITICAL(); TCPServerBuff.rxCount = dataCount; dataCount=0; netbuf_delete(recvBuff); OSSemPost(newTcpServerDataReceivedSem); } else if(err == ERR_CLSD) { netconn_close(newTcpServerConn); netconn_delete(newTcpServerConn); break; }OSTimeDlyHMSM (0,0,0,10); } }GPIOE->ODR ^= GPIO_Pin_15; OSTimeDlyHMSM (0,0,0,500); } } else { for(;;) { OSTimeDlyHMSM (0,0,0,10); } }}void taskTcpServerSend(void *data){ INT8U err; for(;;) { OSSemPend(newTcpServerDataReceivedSem,0,&err); memcpy((uint8_t *)TCPServerBuff.txBuffer,(uint8_t *)(TCPServerBuff.rxBuffer),TCPServerBuff.rxCount); err = netconn_write(newTcpServerConn,(uint8_t *)TCPServerBuff.txBuffer,TCPServerBuff.rxCount, NETCONN_COPY); TCPServerBuff.rxCount = 0; OSTimeDlyHMSM (0,0,0,10); }} |
|
相关推荐
1个回答
|
|
我也是这一模一样的问题,大佬解决没?求助
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2543 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2328 浏览 5 评论
3148 浏览 3 评论
2799 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2759 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
603浏览 1评论
852浏览 0评论
963浏览 0评论
618浏览 0评论
444浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 11:38 , Processed in 0.946953 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号