1

我正在尝试使用带有 RTOS 和 LwIP 的 STM32F769I-Discovery 板制作网络服务器。它应该返回一些简单的 html/image 文件。

这是我到目前为止的完整代码的链接:

https://github.com/xtrinch/stm32f7-demos/tree/master/05-rtos-lwip

请注意,它 90% 是从 STM32Cube_FW_F7_V1.7.0\Projects\STM32F769I-Discovery\Applications\LwIP\LwIP_HTTP_Server_Socket_RTOS 复制而来的。

50% 的时间,板子从 DHCP 获得 IP,50% 的时间,DHCP 请求超时。

当板确实从 DHCP 获得 IP 时,我可以 ping 它,但是当我尝试通过浏览器访问它时,它不会返回任何内容,并且 ping 在尝试后停止工作。

如果 IP 是使用 LwIP 静态分配的,我根本无法 ping 它。

我不知道从哪里开始。也许我的 RTOS 线程优先级有问题?我在 osPriorityHigh 上有 tcp/ip 线程,在 osPriorityBelowNormal 上有 DHCP 线程,在 osPriorityAboveNormal 上有 webserver 线程。

我的网络服务器线程成功地将自己绑定到端口 80,但如下:

    newconn = accept(sock, (struct sockaddr *)&remotehost, (socklen_t *)&size);

永远不会被执行。

4

0 回答 0