完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我手里有STM32F207的开发板,正在试验TCP ECHO SERVER.
static err_t tcp_echoserver_recv(void *arg, struct tcp_PCB *tpcb, struct pbuf *p, err_t err)中 在这里接受到数据: else if (es->state == ES_RECEIVED) { /* more data received from client and previous data has been already sent*/ if(es->p == NULL) { es->p = p; /* send back received data */ tcp_echoserver_send(tpcb, es); }请问: 实际的接收数据在结构里的啥地方? 咋能一个一个的读出数据呢? 我仿真的时候,观察窗口,看不到接收的数据。 |
|
相关推荐
1个回答
|
|
在STM32F207开发板上进行TCP ECHO SERVER测试时,如果在`tcp_echoserver_recv`函数中看不到接收到的数据,可能有以下几个原因:
1. 确保网络连接正常:首先检查开发板是否已正确连接到网络,并且可以正常访问其他网络设备。可以使用ping命令测试网络连接。 2. 检查TCP服务器配置:确保TCP服务器的配置正确,包括监听端口、IP地址等。如果配置错误,可能导致无法接收到数据。 3. 检查TCP连接状态:在`tcp_echoserver_recv`函数中,需要检查TCP连接的状态。如果状态不是`ES_RECEIVED`,则表示没有接收到数据。可以添加一些调试信息,以便更好地了解当前的状态。 4. 检查数据缓冲区:在接收数据时,需要确保数据缓冲区(如`struct pbuf *p`)已正确分配和初始化。如果缓冲区有问题,可能导致无法接收到数据。 5. 检查数据复制:在接收到数据后,需要将其复制到另一个缓冲区,以便进行处理。确保复制过程正确无误。 6. 检查数据发送:在处理完接收到的数据后,需要将其发送回客户端。确保发送过程正确,并且没有出现错误。 7. 使用调试工具:可以使用调试工具(如Wireshark)来捕获网络数据包,以便更好地了解数据传输过程。这有助于发现潜在的问题。 8. 检查代码逻辑:仔细检查`tcp_echoserver_recv`函数中的代码逻辑,确保没有逻辑错误。 9. 更新固件和库:确保使用的固件和网络库是最新的,以避免因旧版本中的已知问题导致的问题。 10. 寻求社区帮助:如果以上方法都无法解决问题,可以在STM32F207开发板的社区william hill官网 中寻求帮助,可能有其他开发者遇到过类似的问题,并提供了解决方案。 通过以上步骤,应该可以找到导致无法看到接收数据的原因,并采取相应的措施解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1802 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1685 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
747浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
580浏览 3评论
602浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 06:28 , Processed in 0.672106 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号