Недавно я получил 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.