diff --git a/MDK-ARM/LWIP.uvguix.29643 b/MDK-ARM/LWIP.uvguix.29643 index fc45450..447d2bb 100644 --- a/MDK-ARM/LWIP.uvguix.29643 +++ b/MDK-ARM/LWIP.uvguix.29643 @@ -111,7 +111,7 @@ 0 726 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000040000000100000054433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C636F6E6669672E630000000008636F6E6669672E6300000000C5D4F200FFFFFFFF52433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C7A6B65792E6800000000067A6B65792E6800000000FFDC7800FFFFFFFF55433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C656E636F6465722E630000000009656E636F6465722E6300000000BECEA100FFFFFFFF57433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C756470636C69656E742E63000000000B756470636C69656E742E6300000000F0A0A100FFFFFFFF52433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C5372635C6672656572746F732E63000000000A6672656572746F732E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000E6090000E7000000820E0000A5020000 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000020000000100000054433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C636F6E6669672E630000000008636F6E6669672E6300000000C5D4F200FFFFFFFF52433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C7A6B65792E6800000000067A6B65792E6800000000FFDC7800FFFFFFFF55433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C656E636F6465722E630000000009656E636F6465722E6300000000BECEA100FFFFFFFF57433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C756470636C69656E742E63000000000B756470636C69656E742E6300000000F0A0A100FFFFFFFF52433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C5372635C6672656572746F732E63000000000A6672656572746F732E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000E6090000E7000000820E0000A5020000 @@ -3603,7 +3603,7 @@ 0 100 - 4 + 2 ..\usersrc\config.c 19 @@ -3624,9 +3624,9 @@ ..\usersrc\encoder.c - 0 + 5 1 - 9 + 20 1 0 diff --git a/Src/freertos.c b/Src/freertos.c index 209328f..74079d8 100644 --- a/Src/freertos.c +++ b/Src/freertos.c @@ -157,7 +157,13 @@ void MX_FREERTOS_Init(void) { void StartDefaultTask(void const * argument) { /* init code for LWIP */ - MX_LWIP_Init(); + if (config_get()->obtaining_ip_mode == OBTAINING_IP_MODE_STATIC){ + MX_LWIP_STATIC_Init(); + }else if (config_get()->obtaining_ip_mode == OBTAINING_IP_MODE_DHCP){ + MX_LWIP_Init(); + }else{ + printf("lwip error\r\n"); + } /* USER CODE BEGIN StartDefaultTask */ osThreadDef(mainTask, StartMainTask, osPriorityNormal, 0, 1024); mainTaskHandle = osThreadCreate(osThread(mainTask), NULL); diff --git a/Src/lwip.c b/Src/lwip.c index b8c2b28..49d8bcb 100644 --- a/Src/lwip.c +++ b/Src/lwip.c @@ -28,9 +28,7 @@ #include "ethernetif.h" /* USER CODE BEGIN 0 */ -uint8_t IP_ADDRESS[4]; -uint8_t NETMASK_ADDRESS[4]; -uint8_t GATEWAY_ADDRESS[4]; +#include "config.h" /* USER CODE END 0 */ /* Private function prototypes -----------------------------------------------*/ static void ethernet_link_status_updated(struct netif *netif); @@ -50,25 +48,11 @@ ip4_addr_t gw; /* USER CODE BEGIN 2 */ void MX_LWIP_STATIC_Init(void) { - IP_ADDRESS[0] = 192; - IP_ADDRESS[1] = 168; - IP_ADDRESS[2] = 8; - IP_ADDRESS[3] = 10; - NETMASK_ADDRESS[0] = 255; - NETMASK_ADDRESS[1] = 255; - NETMASK_ADDRESS[2] = 255; - NETMASK_ADDRESS[3] = 0; - GATEWAY_ADDRESS[0] = 192; - GATEWAY_ADDRESS[1] = 168; - GATEWAY_ADDRESS[2] = 8; - GATEWAY_ADDRESS[3] = 1; - + ipaddr.addr = config_get()->ip; + netmask.addr = config_get()->netmask; + gw.addr = config_get()->gw; tcpip_init(NULL, NULL); - IP4_ADDR(&ipaddr, IP_ADDRESS[0], IP_ADDRESS[1], IP_ADDRESS[2], IP_ADDRESS[3]); - IP4_ADDR(&netmask, NETMASK_ADDRESS[0], NETMASK_ADDRESS[1], NETMASK_ADDRESS[2], NETMASK_ADDRESS[3]); - IP4_ADDR(&gw, GATEWAY_ADDRESS[0], GATEWAY_ADDRESS[1], GATEWAY_ADDRESS[2], GATEWAY_ADDRESS[3]); - netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input); netif_set_default(&gnetif); @@ -135,7 +119,7 @@ void MX_LWIP_Init(void) if (!netif_is_up(&gnetif)){ netif_set_up(&gnetif); if (dhcp_start(&gnetif) == ERR_ARG){ - NVIC_SystemReset(); /* 软复? */ + NVIC_SystemReset(); /* 软复位 */ } }