我最近买了一个带有以太网端口的 Infineon XMC4500 RelaxKit 来自动化我的房子。我想通过 UDP 从服务器与板通信(控制不同的继电器等)。但是我遇到了一个问题。
根据 WireShark 的说法,该板不发送任何内容,但我可以成功 ping 它。此外,在 ping 板时,以太网活动指示灯根本不闪烁,如果有帮助的话。
这是我的代码:
#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 中编写的。