打印
[STM32F4]

STM32F4 LWIP 无操作系统 数据收发问题

[复制链接]
1903|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2021-9-9 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM32CubeMAX 创建的LWIP工程(TCP Server),裸机,无操作系统,可以ping通,也可以发送和接收数据,但是有一个奇怪的地方,描述如下:
     在while循环中“MX_LWIP_Process();‘添加这个函数,函数内部如下所示:
void MX_LWIP_Process(void)
{
/* USER CODE BEGIN 4_1 */
/* USER CODE END 4_1 */
  ethernetif_input(&gnetif);

/* USER CODE BEGIN 4_2 */
/* USER CODE END 4_2 */
  /* Handle timeouts */
  sys_check_timeouts();

/* USER CODE BEGIN 4_3 */
/* USER CODE END 4_3 */
}

而函数”ethernetif_input(&gnetif);“仅是处理的接收数据过程,那么,数据是如何发送的呢?在用TCP工具时,发送的同时也接收到了数据,这到底是怎么回事?

使用特权

评论回复
沙发
stormwind123| | 2021-9-9 10:58 | 只看该作者
建议把工程传上来,肯定有发送的,需要代码分析

使用特权

评论回复
板凳
probedog| | 2021-9-9 10:58 | 只看该作者

你可以看看 ethernet_output(), netif->linkoutput(),HAL_ETH_TransmitFrame(),这些函数,慢慢顺藤摸瓜展开来研究,另外,例程里还用到了专用DMA。

使用特权

评论回复
地板
cyclefly| | 2021-9-9 14:45 | 只看该作者
我用cube就从来没设置成功过网络

使用特权

评论回复
5
AA即将来临| | 2021-9-9 15:44 | 只看该作者
Lwip TCP接收回调函数,这个函数中可得到收到的数据,例程中会将收到的数据在发送出去,把接收回调函数中的发送函数注释掉就可以了。TCP数据发送可使用tcp_write()函数。

使用特权

评论回复
6
coshi| | 2021-10-5 17:54 | 只看该作者
跟有米有操作系统没关系吧

使用特权

评论回复
7
aoyi| | 2021-10-5 18:01 | 只看该作者
这个我还没有调试成功过

使用特权

评论回复
8
drer| | 2021-10-5 18:07 | 只看该作者
不是操作系统的问题

使用特权

评论回复
9
gwsan| | 2021-10-5 18:11 | 只看该作者
我觉得以太网不好调试

使用特权

评论回复
10
kxsi| | 2021-10-5 18:14 | 只看该作者
可以监控一下缓存吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

410

主题

1457

帖子

4

粉丝