Не удается отправить пакет UDP с Infineon XMC 4500 RelaxKit - PullRequest
0 голосов
/ 17 марта 2019

Недавно я получил Infineon XMC4500 RelaxKit с Ethernet-портом для автоматизации моего дома.Я хочу общаться с сервера на плату (управляя разными реле и т. Д.) Через UDP.Но я столкнулся с проблемой.

Плата не отправляет ничего, согласно WireShark, но я могу успешно пропинговать ее.Кроме того, при пинге платы индикатор активности Ethernet вообще не мигает, если это помогает.

Это мой код:

#include <DAVE.h>
int main(void)
{
    DAVE_Init();
    uint32_t button1;
    char str[512] = "Hello World!";
    ip_addr_t ip;
    ip.addr = 0xC0A8091;//192.168.0.145
    struct pbuf * pb;
    pb = pbuf_alloc(PBUF_TRANSPORT, 512, PBUF_REF);
    pb->payload = str;
    pb->len = pb->tot_len = 512;
    u16_t port = 5005;

    struct udp_pcb* pcb = udp_new();
    udp_connect(pcb, &ip, port);

    /* Placeholder for user application code. The while loop below can be replaced with user application code. */
    while(1U)
    {
        sys_check_timeouts();
        DIGITAL_IO_SetOutputLow(&DIGITAL_IO_0);
        button1 = DIGITAL_IO_GetInput(&DIGITAL_IO_1);
        if ( button1 == 1 ) {
            DIGITAL_IO_SetOutputLow(&DIGITAL_IO_0);
        }
        else {
            DIGITAL_IO_SetOutputHigh(&DIGITAL_IO_0);
            udp_send(pcb, pb);
        }
    }
}

Код записан в DAVE IDEот Infineon.

...