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(); /* 软复位 */
}
}