This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
团队、您好!
我正在使用 MSP-EXP432E401Y 在控制器与通过 RJ45转 USB 连接器连接的 PC 之间实现 UDP 通信。
首先、我使用了 Ethernet_with_lwip_nortos_ccs 代码。 这里有 DHCP 来获取 IP 地址、但我需要静态 IP、因此我修改了静态 IP 的代码。
uint32_t srcIP = htonl (ipaddr_addr ("192.168.254.4");
uint32_t netmask = htonl (inet_addr ("255.255.255.0));
uint32_t desIP = htonl (inet_addr ("192.168.254.3"));
然后、在尝试实施 UDP 和测试时、 发送和接收都不工作。
此外、来自 PC 的 ARP 请求也不会从控制器得到响应。
我尝试使用 Echotool 从 PC 发送帧、打印方式与终端相同。我可以看到源端口、目标端口和数据长度完全相同。 但在 Wireshark 中、它显示 ICMP 目标无法访问错误、但 ARP 请求和响应帧是正确的。
是否有人支持通过 MSP432E401Y 控制器中的 lwIP 发送和接收 UDP 帧。
您好!
首先、我看不到您的网关掩码。
您需要确保将 IPADDR_USE_STATIC 传递给 lwIPInit() 。
您还需要将以下两个#define 设置为0。
#define LWIP_DHCP 0
#define LWIP_AUTOIP 0
本应用手册中有一个使用静态 IP 的 tcpecho 示例、您可以参考 TM4C129 MCU。 https://www.ti.com/lit/an/spna248/spna248.pdf
您好 Charles
您需要确保将 IPADDR_USE_STATIC 传递给 lwIPInit() 。
您还需要将以下两个#define 设置为0。
#define LWIP_DHCP 0
#define LWIP_AUTOIP 0
[/报价]我已经执行了这些操作、然后只能使控制器从 PC 接收 UDP 帧、但无论何时都没有调用 recv 回调函数。
结构 UDP_PCB* PCB;
uint32_t srcIP = htonl (ipaddr_addr ("192.168.254.4");
uint32_t netmask = htonl (inet_addr ("255.255.255.0));
uint32_t GWADDR = 0;
uint32_t desIP = htonl (inet_addr ("192.168.254.3"));
lwIPInit (g_ui32SysClock、pui8MACArray、srcIP、网络掩码、GWADDR、IPADDR_USE_STATIC);
pcb = udp_new ();
(void) udp_recv (pcb、RxUdpPcbReceive、NULL);
(void) udp_bind (pcb、&srcIP、8005);
(void) udp_connect (pcb、&desIP、8006);这是我为 UDP 封装进行初始化的
当我尝试 ping 微控制器的 IP 时、我可以得到响应、因此我认为 IP 没有问题。 但在尝试通过 UDP 进行通信时、没有任何效果。
本应用手册中有一个使用静态 IP 的 tcpecho 示例可供参考。 https://www.ti.com/lit/an/spna248/spna248.pdf感谢您分享此示例、我尝试使用静态 IP 复制 enet_udpecho_client_lwip、但在终端上看到了下图、即使 IP 设置不正确
请帮我解决这个问题。
[/quote]
感谢分享此示例,我尝试复制静态 IP 的 enet_udpecho_client_lwip,但在终端中看到以下图像,即使 IP 设置不正确[/报价]您是否按原样尝试了 enet_tcpecho_server_static_ip_lwip 示例并且仅修改了静态地址? 运行是否正常? TM4C129与 MSP432E 是相同的器件。 您甚至可以按原样刷写.out 文件、其编程将不会有问题。
我还会建议您尝试不同的网络、例如尝试您的家庭网络或某处。 您的公司网络可能有防火墙或其他安全设置。 您还需要确保您的客户端和服务器位于同一子网中。
您好 Charles、
我让它使用具有静态 IP 的 enet_udpecho_client_lwip 代码、现在可以正常运行。 我未能在 lwip init 中正确添加 IP、因此出现错误消息"No route to..."。
发送和接收对于此代码均正确。
但我不知道为什么它不能用于我的代码。
很高兴您的问题得到解决。