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.

[参考译文] CCS/TM4C129ENCPDT:TI 板对板通信

Guru**** 2487425 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/734521/ccs-tm4c129encpdt-ti-board-to-board-communication

器件型号:TM4C129ENCPDT

工具/软件:Code Composer Studio

我使用 个具有 Code Composer Studio 的 EK-TM4C 129EXL 评估套件、通过以太网 TCP/IP lwip 协议建立板对板通信(字符串数据传输)。

为此、我必须将一个板配置为服务器、将另一个板配置为客户端。 我计划为服务器和客户端编写两个单独的程序、并通过与 PC 通信来检查是否使用 LabVIEW、然后将它们连接在一起以实现板对板通信。

 已经通过修改"enet_lwip.c"示例程序检查了- TI 板作为服务器、我的 PC (LabVIEW)作为客户端、它工作正常。 它已经作为服务器针对 TI 电路板编写。

现在、我正在尝试将 TI 板用作客户端、并检查将 PC (LabView)用作服务器。

我调用 EtherNet_Init()函数,如果建立了连接,则 将调用回调函数“已连接”。

void Ethernet_Init (void)


struct tcp_pcb *pcb;
ERR_t 错误;
PCB = tcp_new();
if (PCB == NULL)

UARTprintf ("无法创建 PCC\n");

ip_addr_t IP2;
ip2.addr=323236043; //对应于192.168.2.11的十进制值(使用 lwipinit()函数设置我的 TI 板 IP 地址)

tcp_bind (PCB、&IP2、30001);//端口为30001

ip_addr_t IP1;
ip1.addr=323236044; //对应于192.168.2.12的十进制值-我的 PC IP 地址


ERR = tcp_connect (pcb、&ip1、30001、已连接);//30001是端口号、"connected"是需要调用的回调函数

if (err = ERR_VAL || err = ERR_RTE || err = ERR_OK) // ERR_OK 从 tcp_connect 函数返回

   UARTprintf ("err returned\n");

静态 ERR_t 已连接(void *arg、struct tcp_pcb *pcb、err_t err)

 tcp_write (PCB、"OK"、2、0);
 返回1;

虽然我从 tcp_connect()中得到 ERR_OK,但“已连接”函数没有被调用,在 Labiew 一侧,我将有 tcp_listen (server)函数,它会一直等待客户端连接到它。

我的板未连接到它。

是缺少什么东西、还是有任何其他方法可以通过以太网建立微控制器板对板通信。

感谢你能抽出时间。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为您的 IP 地址是问题所在。 绑定时,应使用以下类似的方法:
    tcp_bind (PCB、IP_ADDR_ANY、30001);

    当您连接到服务器时、您应该执行以下操作:
    ERR = tcp_connect (pcb、&ip2、30001、已连接);// IP2是您的 PC IP 地址、而不是您的 TI 板地址。 我建议您使用不同的端口号、如30002。 服务器端口不需要与客户端相同的端口
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉。 我在这个问题上犯了一个错误。 192.168.2.11是我的 TI 板 IP、192.168.2.12是我的 PC IP。 我已编辑过该帖子。
    再次抱歉..

    我已使用 IP_ADDR_ANY 进行检查。 它不工作。 是否有任何将 TI 电路板配置为客户端的示例程序?
    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您能否显示整个代码、例如连接的回调和其他用于接收的回调? 另请使用 Wireshark 捕获以太网帧。 您应该会看到客户端向服务器发送 SYNC=0段。 如果成功、服务器应回复同步 ACK 帧。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    问题是否已解决? 我现在将关闭该线程、如果您有进一步的问题、您可以打开该线程或创建新线程。