Shiva
Shiva

Reputation: 551

Enabling DHCP in Pic32

how to enable DHCP in Pic32? i am trying with the following code.i have used TCP/IP Stack v5.31,When this function runs, my default ip appears,buts it is constant always

AppConfig.Flags.bIsDHCPEnabled = TRUE;
    AppConfig.Flags.bInConfigMode = TRUE;
    memcpypgm2ram((void*)&AppConfig.MyMACAddr, (ROM void*)SerializedMACAddress, sizeof(AppConfig.MyMACAddr));
    AppConfig.MyIPAddr.Val = MY_DEFAULT_IP_ADDR_BYTE1 | MY_DEFAULT_IP_ADDR_BYTE2<<8ul | MY_DEFAULT_IP_ADDR_BYTE3<<16ul | MY_DEFAULT_IP_ADDR_BYTE4<<24ul;
    AppConfig.DefaultIPAddr.Val = AppConfig.MyIPAddr.Val;
    AppConfig.MyMask.Val = MY_DEFAULT_MASK_BYTE1 | MY_DEFAULT_MASK_BYTE2<<8ul | MY_DEFAULT_MASK_BYTE3<<16ul | MY_DEFAULT_MASK_BYTE4<<24ul;
    AppConfig.DefaultMask.Val = AppConfig.MyMask.Val;
    AppConfig.MyGateway.Val = MY_DEFAULT_GATE_BYTE1 | MY_DEFAULT_GATE_BYTE2<<8ul | MY_DEFAULT_GATE_BYTE3<<16ul | MY_DEFAULT_GATE_BYTE4<<24ul;
    AppConfig.PrimaryDNSServer.Val = MY_DEFAULT_PRIMARY_DNS_BYTE1 | MY_DEFAULT_PRIMARY_DNS_BYTE2<<8ul  | MY_DEFAULT_PRIMARY_DNS_BYTE3<<16ul  | MY_DEFAULT_PRIMARY_DNS_BYTE4<<24ul;
    AppConfig.SecondaryDNSServer.Val = MY_DEFAULT_SECONDARY_DNS_BYTE1 | MY_DEFAULT_SECONDARY_DNS_BYTE2<<8ul  | MY_DEFAULT_SECONDARY_DNS_BYTE3<<16ul  | MY_DEFAULT_SECONDARY_DNS_BYTE4<<24ul;

Upvotes: 0

Views: 559

Answers (2)

Ravi C
Ravi C

Reputation: 64

You have to uncomment these lines as per your application in file TCPIP WIFI_GPIO32.h"

#define STACK_USE_DHCP_CLIENT           // Dynamic Host Configuration Protocol client for obtaining IP address and other parameters
//#define STACK_USE_DHCP_SERVER         // Single host DHCP server

Then the respective code for under that macro will be enabled

Upvotes: 0

Ishmeet
Ishmeet

Reputation: 1610

Is there a router on the network running dhcp server? Are you handling dhcp request and dhcp response packets? basically, your PIC32 board should be able to send dhcp discover packets on the network, then a dhcp response should come from the server, dhcp request packet and ACK packet should follow afterwards, see this rfc , If all these steps are being performed, then success you should get the new IP address. If not then timeout should occur and static IP address should remain

Upvotes: 2

Related Questions