工具/软件: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)函数,它会一直等待客户端连接到它。
我的板未连接到它。
是缺少什么东西、还是有任何其他方法可以通过以太网建立微控制器板对板通信。
感谢你能抽出时间。