私はPIC32 ethernet evaluation boardを持っていて、簡単なUDPパケットを送信しようとしています。ここでPIC32イーサネットキットとUDP
私のコードは、これまでのところです:私はMPLAB IDEでコードをコンパイルして実行すると、ボードは二つのパケット、そして何を送るよう
/*
* This macro uniquely defines this file as the main entry point.
* There should only be one such definition in the entire project,
* and this file must define the AppConfig variable as described below.
*/
#define THIS_IS_STACK_APPLICATION
// Include all headers for any enabled TCPIP Stack functions
#include "TCPIP Stack/TCPIP.h"
#include "TCPIPConfig.h"
#include <plib.h>
#include <p32xxxx.h>
// Declare AppConfig structure and some other supporting stack variables
APP_CONFIG AppConfig;
BYTE AN0String[8];
int main()
{
static enum
{
SM_OPEN,
SM_BROADCAST,
} smState = SM_OPEN;
typedef BYTE UDPSocket;
UDP_SOCKET s;
NODE_INFO myRemoteNode;
myRemoteNode.IPAddr.v[0]=169;
myRemoteNode.IPAddr.v[1]=254;
myRemoteNode.IPAddr.v[2]=2;
myRemoteNode.IPAddr.v[3]=2;
myRemoteNode.MACAddr.v[0]=0x01;
myRemoteNode.MACAddr.v[1]=0xA0;
myRemoteNode.MACAddr.v[2]=0xF0;
myRemoteNode.MACAddr.v[3]=0x7B;
myRemoteNode.MACAddr.v[4]=0xE5;
myRemoteNode.MACAddr.v[5]=0x45;
TRISD = 0xff00; // tri-state register for the LED ports
// Initialize UDP
UDPInit();
while(1)
{
switch(smState)
{
case SM_OPEN:
// Talk to a remote DHCP server.
s = UDPOpen(68, &myRemoteNode, 67);
if (s == INVALID_UDP_SOCKET)
{
PORTD = 0x01; // Switch on the red LED on PIC32 ethernet starter kit to indicate an error
// Socket is not available
// Return error.
}
else
// Broadcast DHCP Broadcast message.
smState = SM_BROADCAST;
break;
case SM_BROADCAST:
PORTD = 0x02; // Switch on the yellow LED to indicate the connection
if (UDPIsPutReady(s))
{
// Turn on yellow and green LED to indicate UDP is put ready
PORTD = 0x06;
// Socket is ready to transmit. Transmit the data...
// Note that there is DHCPSocket parameter in UDPPut.
// This UDPPut call will use active socket
// as set by UDPIsPutReady() - that is DHCPSocket.
UDPPut(0x55);
// Now transmit it.
UDPFlush();
}
UDPClose(s);
break;
}
}
}
、それが見えます。 Wiresharkを実行しているラップトップPCにボードを直接接続しましたが、Wiresharkは受信パケットを検出できませんでした。
TCPを使用するhttpサーバーデモを実行するボードを正常に取得できたため、ハードウェアの問題ではありません。