---
title: "W6100EVB-HTTP_Server 빌드애러"
url: "https://maker.wiznet.io/forum/13355"
markdown_url: "https://maker.wiznet.io/forum/13355/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "con3723"
created: "2019-06-10T04:37:51+09:00"
last_activity: "2019-07-09T00:56:22+09:00"
language: "en"
views: 1658
replies: 38
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# W6100EVB-HTTP_Server 빌드애러

## Question

Asked by con3723 on 2019-06-10 in Ethernet Chips.

[![%EC%A0%9C%EB%AA%A9%20%EC%97%86%EC%9D%8C](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/4/49a68db9bfafde954c050a71cfdfa19dae22bbfc.png) %EC%A0%9C%EB%AA%A9%20%EC%97%86%EC%9D%8C1920×1040 155 KB](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/4/49a68db9bfafde954c050a71cfdfa19dae22bbfc.png)

## Replies

### Reply 1 by becky, 2019-06-10

안녕하세요

submodule을 추가하셨나요??
io6Library가 submodule로 되어있습니다
알집으로 zip파일로 다운하신경우 io6Library도 별도로 다운받아서 W6100EVB-HTTP_Server폴더안에 넣어주세요

![](https://github.githubassets.com/favicons/favicon.svg) [github.com](https://github.com/Wiznet/io6Library/tree/1a2cb294edddb64a78d9cfe9af7a7d22cefd4be4)

### [GitHub - Wiznet/io6Library at 1a2cb294edddb64a78d9cfe9af7a7d22cefd4be4](https://github.com/Wiznet/io6Library/tree/1a2cb294edddb64a78d9cfe9af7a7d22cefd4be4)

[1a2cb294edddb64a78d9cfe9af7a7d22cefd4be4](https://github.com/Wiznet/io6Library/tree/1a2cb294edddb64a78d9cfe9af7a7d22cefd4be4)

io6Library is the integrated library for dual TCP/IP statck contorller such as W6100.

github로 다운받으신 경우 submodule 추가하시면 됩니다.

### Reply 2 by con3723, 2019-06-10 (in reply to reply 1)

아무데나 붙혀 넣어면 됩니까.

### Reply 3 by becky, 2019-06-10

![image](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/a/af9ebec6f0d02b7644d677c91e38fc58ed03b4f3.png)
위와 같이 경로 맞춰주셔야 합니다

### Reply 4 by con3723, 2019-06-10

예 확인 햇습니다.잘 됩니다.

### Reply 5 by con3723, 2019-06-10

감사합니다.

### Reply 6 by con3723, 2019-06-10

안녕하세요.초보 입니다.
wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0xff,0xff},
.ip = {192,168,0,30},
.gw = {192, 168, 0, 1},
.dns = {168, 126, 63, 1},
.lla = {0xfe,0x80, 0x00,0x00,
0x00,0x00, 0x00,0x00,
0x02,0x00, 0xdc,0xff,
0xfe,0x57, 0x57,0x62},
키트는 W6100EVB 입니다.여기서 .ip = {192,168,0,30}, 의 ip주소를 외부 표시장치(FND백단위 * 4)로 표시하고 .ip를 변경할수 있게 만들어 사용할려고 합니다.
.ip = {192,168,0,30}, ip를 변경하는 곳이 어디인지 어덯게 하면 되는지 설명 부탁 드립니다.
감사합니다.

### Reply 7 by becky, 2019-06-11

안녕하세요
ip는

main.c에서

[![image](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/e/e74f05cf9fe92de2a012b8ecba35308e2144e207.png) image697×499 9.29 KB](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/e/e74f05cf9fe92de2a012b8ecba35308e2144e207.png)

위의 부분에서 값을 지정해준뒤
![image](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/d/d4de59262d233f9b46e0d4e59acc1dc052a85a38.png)
위의 위의 함수를 통해 unlock후 네트워크정보를 셋팅해줍니다.

따라서
gWIZNETINFO값을 변경하신후에
ctlwizchip(CW_SYS_UNLOCK,& syslock);
ctlnetwork(CN_SET_NETINFO,&gWIZNETINFO);
를 적어주시면 될것 같습니다.

### Reply 8 by con3723, 2019-06-11

unlock 하는 방법과 네트워크 정보 수정하는 방법과 다시 lock하는 방법 구체적으로 예를 좀 보여주세요.
부탁 드립니다.

### Reply 9 by becky, 2019-06-11

ip를 192,168,0,23으로 변경하고싶으신 경우
gWIZNETINFO.ip[0]=192;
gWIZNETINFO.ip[1]=168;
gWIZNETINFO.ip[2]=0;
gWIZNETINFO.ip[3]=23;
ctlwizchip(CW_SYS_UNLOCK,& syslock);
ctlnetwork(CN_SET_NETINFO,&gWIZNETINFO);
위와같이 적어주시면 됩니다

### Reply 10 by con3723, 2019-06-11

감사합니다.오늘 해보고 내일 다시 연락 드리겠습니다.

### Reply 11 by con3723, 2019-06-12

[![%EC%A0%9C%EB%AA%A9%20%EC%97%86%EC%9D%8C](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/6/6dcddc6810ede723eff06e8794f2238a247b1823.png) %EC%A0%9C%EB%AA%A9%20%EC%97%86%EC%9D%8C868×427 6.81 KB](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/6/6dcddc6810ede723eff06e8794f2238a247b1823.png)

### Reply 12 by con3723, 2019-06-12

안녕하세요.
위 사진처럼 W6100-EVB 보드를 수정(Ethernet 관련은 그대로 사용)해서 현장 컴퓨터와 Ethernet통신으로 LED lamp 16개를 제어하는데 사용합니다.
lamp 16개 on off 와 각램프의 PWM값을 전송하여 컴퓨터에서 밝기도 조정하는데 사용할 계획입니다.
이와 관련 W6100-EVB와 통신Protocol 관련된 코딩은 어디에 있는지 코딩과 관련해서 설명좀 듣고 싶습니다.

### Reply 13 by con3723, 2019-06-13

안녕하세요.
wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0xff,0xff},
.ip = {192,168,0,30},
.gw = {192, 168, 0, 1},
.dns = {168, 126, 63, 1},
위 ip 숫자의 입력 범위가 있을것 같은데 ip주소로 사용하는 숫자의 범위 좀 알려 주세요.

### Reply 14 by con3723, 2019-06-13

안녕하세요.
wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0xff,0xff},
.ip = {192,168,0,30},
.gw = {192, 168, 0, 1},
.dns = {168, 126, 63, 1},
위 ip 숫자의 입력 범위가 있을것 같은데 ip주소로 사용하는 숫자의 범위 좀 알려 주세요.

### Reply 15 by becky, 2019-06-14

ipv4주소 범위는 8bit x4자리 총 32bit 주소체계로 0~255 의 범위를 가집니다.
자세한 내용은 인터넷 검색해보시기 바랍니다.

### Reply 16 by con3723, 2019-06-14

저는 W6100-EVB 관련 질문은 모두 여기서 할 겁니다.
몰론 좀 바쁘시겠지만 좋은 답변 부탁 드립니다.
항상 감사합니다.

### Reply 17 by con3723, 2019-06-14

[![STM32F103ZET](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/2/26d639559e38834b1c69ba3cd1807fa30a24c5af.png) STM32F103ZET721×844 150 KB](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/2/26d639559e38834b1c69ba3cd1807fa30a24c5af.png)

CPU CIP를 STM32F103ZET 칩으로 교체하여 코딩한 부분 중에 includes 부분에 기존 stm32f103vct 부분의 io6Library/Application/loopback,io6Library/Ethernet,io6Library/Ethernet/W6100 부분을 추가 할려면 어떻게 합니까.

### Reply 18 by con3723, 2019-06-14

STM32F103VCT를 STM103ZET LQFP144 로 만들었습니다.
잘 될련지는 모러겠지만 일단 빌드 에러는 없습니다.

### Reply 19 by becky, 2019-06-14

안녕하세요

해당내용은 ST보드 관련 내용으로 지원이 어렵습니다.

### Reply 20 by con3723, 2019-06-17

[W6100EVB-HTTP_Server-master.zip (536.5 KB)](https://maker.wiznet.io/forum/legacyFile.asp?path=6iuLDCiSKYVDj6toqDOv3LxZIbI.zip)

### Reply 21 by con3723, 2019-06-17

앞에 보낸것은 원본이고 이것은 제가 코딩 추가한 것입니다.

### Reply 22 by con3723, 2019-06-17

업르도중: W6100EVB-HTTP_Server-master (2).zip…

### Reply 23 by con3723, 2019-06-17

안녕하세요.
추가한 이 부분이 동작을 하지 않습니다.확인 부탁드립니다.

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
HAL_TIM_Encoder_Start(&htim3,TIM_CHANNEL_1);
HAL_TIM_Base_Start_IT(&htim4);
HAL_TIM_Base_Start_IT(&htim5);

/* USER CODE BEGIN 0 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
//HAL_GPIO_WritePin(GPIOB,lp1_Pin,1);

```
//if(0 == HAL_GPIO_ReadPin(GPIOB,lp2_Pin))

{
	if(htim->Instance == TIM4){HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_9);}
	{
		//if(0 == HAL_GPIO_ReadPin(GPIOC,LP2_Pin))TIM4_100msCnt++;
		if(4<=TIM4_100msCnt){TIM4_100msCnt=0;}
	}
}
//if(GPIO_Pin == IP_Pin)



cnt = TIM3->CNT;
```

//-----------------------------------------천단위 표시------------------------------------------
cjs = cnt/1000;
cjs1 = cnt - (cjs *1000);
//-----------------------------------------백단위 표시------------------------------------------
qor = cjs1/100;
qor1 = cjs1 - (qor * 100);
//-----------------------------------------십댠위 표시------------------------------------------
tlq = qor1/10;
tlq1 = qor1 - (tlq * 10);
//-----------------------------------------일단위 표시------------------------------------------
dlf = tlq1/1;
//-----------------------------------------일,십,백,천 단위 GPIO reset---------------------------
HAL_GPIO_WritePin(GPIOC,S0_Pin,0);
HAL_GPIO_WritePin(GPIOC,S1_Pin,0);
HAL_GPIO_WritePin(GPIOC,S2_Pin,0);
HAL_GPIO_WritePin(GPIOC,S3_Pin,0);
//-----------------------------------------0,1,2,3,4,5,6,7,8,9 GPIO set---------------------
HAL_GPIO_WritePin(GPIOE, A_Pin|B_Pin|C_Pin|D_Pin|E_Pin|F_Pin|G_Pin, GPIO_PIN_SET);

//-----------------------------------------TIME5 counter FND 순차표시 인더럽트--------------------
if(htim->Instance == TIM5)
{
if((1CNT)|(1999>TIM3->CNT))
if(1>TIM3->CNT){TIM3->CNT = 0;}
if(1999CNT){TIM3->CNT = 1999;}
TIM2->CCR1 = TIM3->CNT;

### Reply 24 by teddy, 2019-06-17

안녕하세요
code 부분이 짤라져 있어서 확인이 힘듭니다.
추가한 부분만이 아니라 main.c 의 전체 부분을 주시면 확인해 보도록 하겠습니다.

### Reply 25 by con3723, 2019-06-17

/* USER CODE BEGIN Header / /* @file : main.c @brief : Main program body @attention © Copyright (c) 2019 STMicroelectronics. All rights reserved. This software component is licensed by ST under BSD 3-Clause license, the “License”; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause / / USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include “main.h” /* Private includes ----------------------------------------------------------/ / USER CODE BEGIN Includes / #include “loopback.h” #include “socket.h” #include “httpServer.h” #include “webpage.h” #include “board_init.h” / USER CODE END Includes */ /* Private typedef -----------------------------------------------------------/ / USER CODE BEGIN PTD */ #define SOCK_TCPS 0 #define SOCK_UDPS 1 #define PORT_TCPS 5000 #define PORT_UDPS 3000 #define MAX_HTTPSOCK 4 // Addfess Family v4 #define AF_INET 2 // Addfess Family v6 #define AF_INET6 23 // Addfess Family DUAL #define AF_INET_DUAL 11 /* USER CODE END PTD */ /* Private define ------------------------------------------------------------/ / USER CODE BEGIN PD / uint8_t socknumlist[] = {0, 1, 2, 3}; uint8_t RX_BUF[DATA_BUF_SIZE]; uint8_t TX_BUF[DATA_BUF_SIZE]; uint8_t URX_BUF[DATA_BUF_SIZE]; unsigned int URX_BUF_cnt = 0; unsigned int URX_BUF_Flag = 0; static int cnt = 0; volatile int dlf = 0; volatile int tlq = 0; volatile int tlq1 = 0; volatile int qor = 0; volatile int qor1 = 0; volatile int cjs = 0; volatile int cjs1 = 0; volatile int TIM5_1000msCnt = 0; volatile int TIM4_100msCnt = 0; / USER CODE END PD */ /* Private macro -------------------------------------------------------------/ / USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ SPI_HandleTypeDef hspi2; TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim3; TIM_HandleTypeDef htim4; TIM_HandleTypeDef htim5; UART_HandleTypeDef huart1; /* USER CODE BEGIN PV */ wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0xff,0xff}, .ip = {192,168,0,13}, .sn = {255, 255, 255, 0}, .gw = {192, 168, 0, 1}, .dns = {168, 126, 63, 1}, .lla = {0xfe,0x80, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x02,0x00, 0xdc,0xff, 0xfe,0x57, 0x57,0x62}, .gua={0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00}, .sn6={0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00, 0x00, 0x00,0x00,0x00,0x00}, .gw6={0x00, 0x00, 0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00} }; uint8_t WIZ_Dest_IP[4] = {192, 168, 0, 232}; //DST_IP Address uint8_t DestIP6_L[16] = {0xfe,0x80, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x31,0x71,0x98,0x05, 0x70,0x24,0x4b,0xb1 }; uint8_t DestIP6_G[16] = {0x20,0x01,0x02,0xb8, 0x00,0x10,0x00,0x01, 0x31,0x71,0x98,0x05, 0x70,0x24,0x4b,0xb1 }; uint8_t Router_IP[16]= {0xff,0x02,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02 }; uint8_t data_buf[2048]; void print_network_information(void); void wep_define_func(void); /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_SPI2_Init(void); static void MX_USART1_UART_Init(void); static void MX_TIM2_Init(void); static void MX_TIM3_Init(void); static void MX_TIM4_Init(void); static void MX_TIM5_Init(void); static void MX_NVIC_Init(void); / USER CODE BEGIN PFP */ uint8_t rxData; // Using printf Function int _write(int fd, char *str, int len) { for(int i=0; i&lt;len; i++) { HAL_UART_Transmit(&huart1, (uint8_t *)&str[i], 1, 0xFFFF); } return len; } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* This will be called once data is received successfully, via interrupts. */ /* loop back received data */ HAL_UART_Receive_IT(&huart1, &rxData, 1); HAL_UART_Transmit(&huart1, &rxData, 1, 1000); //massage input end enter key flag URX_BUF[URX_BUF_cnt++] = rxData; if((rxData == '\r') ||(URX_BUF_cnt > DATA_BUF_SIZE)) { URX_BUF_Flag = 1; } } /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------/ / USER CODE BEGIN 0 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { //HAL_GPIO_WritePin(GPIOB,lp1_Pin,1); //if(0 == HAL_GPIO_ReadPin(GPIOB,lp2_Pin)) { if(htim->Instance == TIM4){HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_9);} { //if(0 == HAL_GPIO_ReadPin(GPIOC,LP2_Pin))TIM4_100msCnt++; if(4&lt;=TIM4_100msCnt){TIM4_100msCnt=0;} } } //if(GPIO_Pin == IP_Pin) cnt = TIM3->CNT; //-----------------------------------------천단위 표시------------------------------------------ cjs = cnt/1000; cjs1 = cnt - (cjs *1000); //-----------------------------------------백단위 표시------------------------------------------ qor = cjs1/100; qor1 = cjs1 - (qor * 100); //-----------------------------------------십댠위 표시------------------------------------------ tlq = qor1/10; tlq1 = qor1 - (tlq * 10); //-----------------------------------------일단위 표시------------------------------------------ dlf = tlq1/1; //-----------------------------------------일,십,백,천 단위 GPIO reset--------------------------- HAL_GPIO_WritePin(GPIOC,S0_Pin,0); HAL_GPIO_WritePin(GPIOC,S1_Pin,0); HAL_GPIO_WritePin(GPIOC,S2_Pin,0); HAL_GPIO_WritePin(GPIOC,S3_Pin,0); //-----------------------------------------0,1,2,3,4,5,6,7,8,9 GPIO set--------------------- HAL_GPIO_WritePin(GPIOE, A_Pin|B_Pin|C_Pin|D_Pin|E_Pin|F_Pin|G_Pin, GPIO_PIN_SET); //-----------------------------------------TIME5 counter FND 순차표시 인더럽트-------------------- if(htim->Instance == TIM5) { if((1CNT)|(1999>TIM3->CNT)) if(1>TIM3->CNT){TIM3->CNT = 0;} if(1999CNT){TIM3->CNT = 1999;} TIM2->CCR1 = TIM3->CNT; //if(0 == HAL_GPIO_ReadPin(GPIOA,lp1_Pin)){ipadd1 = TIM3->CNT;} TIM5_1000msCnt++; if(TIM5_1000msCnt>=4){TIM5_1000msCnt = 0;} { switch(TIM5_1000msCnt) { //------------------------------------------1단위 표시------------------------------------------- case 0: //if(1 == HAL_GPIO_ReadPin(GPIOC,LP2_Pin)){HAL_GPIO_TogglePin(GPIOA,S0_Pin);} HAL_GPIO_WritePin(GPIOC,S0_Pin,1); switch (dlf) { case 0: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin ,0); // 0 0x3F break; case 1: HAL_GPIO_WritePin(GPIOE,C_Pin | B_Pin ,0); // 0 0x06 break; case 2: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin |D_Pin| E_Pin | G_Pin ,0); // 0 0x5B break; case 3: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| G_Pin,0); // 0 0x4F break; case 4: HAL_GPIO_WritePin(GPIOE,B_Pin | C_Pin | F_Pin | G_Pin,0); // 0 0x66 break; case 5: HAL_GPIO_WritePin(GPIOE,A_Pin | C_Pin |D_Pin| G_Pin | F_Pin ,0); // 0 0x6D break; case 6: HAL_GPIO_WritePin(GPIOE,C_Pin |D_Pin| E_Pin | F_Pin | G_Pin ,0); // 0 0x7B break; case 7: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin ,0); // 0 0x07 break; case 8: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin |G_Pin,0); // 0 0x3F break; case 9: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| F_Pin |G_Pin,0); // 0 0x67 } break; //-------------------------------------------10단위 표시------------------------------------------- case 1: //if(1 == HAL_GPIO_ReadPin(GPIOC,LP2_Pin)){HAL_GPIO_TogglePin(GPIOA,S1_Pin);} HAL_GPIO_WritePin(GPIOC,S1_Pin,1); switch (tlq) { case 0: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin ,0); // 0 0x3F break; case 1: HAL_GPIO_WritePin(GPIOE,C_Pin | B_Pin ,0); // 0 0x06 break; case 2: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin |D_Pin| E_Pin | G_Pin ,0); // 0 0x5B break; case 3: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| G_Pin,0); // 0 0x4F break; case 4: HAL_GPIO_WritePin(GPIOE,B_Pin | C_Pin | F_Pin | G_Pin,0); // 0 0x66 break; case 5: HAL_GPIO_WritePin(GPIOE,A_Pin | C_Pin |D_Pin| G_Pin | F_Pin ,0); // 0 0x6D break; case 6: HAL_GPIO_WritePin(GPIOE,C_Pin |D_Pin| E_Pin | F_Pin | G_Pin ,0); // 0 0x7B break; case 7: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin ,0); // 0 0x07 break; case 8: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin |G_Pin,0); // 0 0x3F break; case 9: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| F_Pin |G_Pin,0); // 0 0x67 } break; //-------------------------------------------100단위 표시------------------------------------------ case 2: //if(1 == HAL_GPIO_ReadPin(GPIOC,LP2_Pin)){HAL_GPIO_TogglePin(GPIOA,S2_Pin);} HAL_GPIO_WritePin(GPIOC,S2_Pin,1); switch (qor) { case 0: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin ,0); // 0 0x3F break; case 1: HAL_GPIO_WritePin(GPIOE,C_Pin | B_Pin ,0); // 0 0x06 break; case 2: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin |D_Pin| E_Pin | G_Pin ,0); // 0 0x5B break; case 3: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| G_Pin,0); // 0 0x4F break; case 4: HAL_GPIO_WritePin(GPIOE,B_Pin | C_Pin | F_Pin | G_Pin,0); // 0 0x66 break; case 5: HAL_GPIO_WritePin(GPIOE,A_Pin | C_Pin |D_Pin| G_Pin | F_Pin ,0); // 0 0x6D break; case 6: HAL_GPIO_WritePin(GPIOE,C_Pin |D_Pin| E_Pin | F_Pin | G_Pin ,0); // 0 0x7B break; case 7: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin ,0); // 0 0x07 break; case 8: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin |G_Pin,0); // 0 0x3F break; case 9: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| F_Pin |G_Pin,0); // 0 0x67 } break; //-------------------------------------------1000단위 표시----------------------------------------- case 3: //if(1 == HAL_GPIO_ReadPin(GPIOC,LP2_Pin)){HAL_GPIO_TogglePin(GPIOA,S3_Pin);} HAL_GPIO_WritePin(GPIOC,S3_Pin,1); switch (cjs) { case 0: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin ,0); // 0 0x3F break; case 1: HAL_GPIO_WritePin(GPIOE,C_Pin | B_Pin ,0); // 0 0x06 break; case 2: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin |D_Pin| E_Pin | G_Pin ,0); // 0 0x5B break; case 3: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| G_Pin,0); // 0 0x4F break; case 4: HAL_GPIO_WritePin(GPIOE,B_Pin | C_Pin | F_Pin | G_Pin,0); // 0 0x66 break; case 5: HAL_GPIO_WritePin(GPIOE,A_Pin | C_Pin |D_Pin| G_Pin | F_Pin ,0); // 0 0x6D break; case 6: HAL_GPIO_WritePin(GPIOE,C_Pin |D_Pin| E_Pin | F_Pin | G_Pin ,0); // 0 0x7B break; case 7: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin ,0); // 0 0x07 break; case 8: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| E_Pin | F_Pin |G_Pin,0); // 0 0x3F break; case 9: HAL_GPIO_WritePin(GPIOE,A_Pin | B_Pin | C_Pin |D_Pin| F_Pin |G_Pin,0); // 0 0x67 } break; } } } } /* USER CODE END 0 */ /** @brief The application entry point. @retval int / int main(void) { / USER CODE BEGIN 1 / uint8_t syslock = SYS_NET_LOCK; uint8_t i; / USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI2_Init(); MX_USART1_UART_Init(); MX_TIM2_Init(); MX_TIM3_Init(); MX_TIM4_Init(); MX_TIM5_Init(); /* Initialize interrupts / MX_NVIC_Init(); / USER CODE BEGIN 2 */ HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1); HAL_TIM_Encoder_Start(&htim3,TIM_CHANNEL_1); HAL_TIM_Base_Start_IT(&htim5); HAL_UART_Receive_IT(&huart1, &rxData, 1); printf(“&lt; W6100EVB Web Server & Loop Back TEST!! > \r\n”); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_SET); BoardInitialze(); //gWIZNETINFO.ip[0] = 192; //gWIZNETINFO.ip[1] = 168; //gWIZNETINFO.ip[2] = 0; //gWIZNETINFO.ip[3] = 22; ctlwizchip(CW_SYS_UNLOCK,& syslock); ctlnetwork(CN_SET_NETINFO,&gWIZNETINFO); printf(“VERSION(%x) = %.2x \r\n”, VER, getVER()); print_network_information(); /* HTTP Server Initialization */ httpServer_init(TX_BUF, RX_BUF, MAX_HTTPSOCK, socknumlist); // Tx/Rx buffers (1kB) / The number of W5500 chip H/W sockets in use /* Web content registration (web content in webpage.h, Example web pages) / wep_define_func(); / USER CODE END 2 */ /* Infinite loop / / USER CODE BEGIN WHILE / while (1) { / USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //message input serial display & send tcp client message if(URX_BUF_Flag) { URX_BUF_Flag = 0; URX_BUF[URX_BUF_cnt] = 0; printf("\r\n input:%s\r\n", URX_BUF); if(getSn_SR(1) == SOCK_ESTABLISHED) send(1, URX_BUF, URX_BUF_cnt); URX_BUF_cnt = 0; } //HTTP Server for(i = 0; i &lt; MAX_HTTPSOCK; i++) httpServer_run(i); // HTTP Server handler //loopback server loopback_tcps(5, data_buf, 5000, AS_IPV6); loopback_tcps(6, data_buf, 5001, AS_IPV4); } /* USER CODE END 3 */ } /** @brief System Clock Configuration @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the CPU, AHB and APB busses clocks / RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /* Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler(); } } /** @brief NVIC Configuration. @retval None / static void MX_NVIC_Init(void) { / TIM5_IRQn interrupt configuration / HAL_NVIC_SetPriority(TIM5_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM5_IRQn); / TIM4_IRQn interrupt configuration / HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM4_IRQn); / TIM3_IRQn interrupt configuration / HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM3_IRQn); / TIM2_IRQn interrupt configuration */ HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM2_IRQn); } /** @brief SPI2 Initialization Function @param None @retval None */ static void MX_SPI2_Init(void) { /* USER CODE BEGIN SPI2_Init 0 */ /* USER CODE END SPI2_Init 0 */ /* USER CODE BEGIN SPI2_Init 1 */ /* USER CODE END SPI2_Init 1 / / SPI2 parameter configuration*/ hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.Direction = SPI_DIRECTION_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi2.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi2) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI2_Init 2 */ /* USER CODE END SPI2_Init 2 */ } /** @brief TIM2 Initialization Function @param None @retval None */ static void MX_TIM2_Init(void) { /* USER CODE BEGIN TIM2_Init 0 */ /* USER CODE END TIM2_Init 0 */ TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_OC_InitTypeDef sConfigOC = {0}; /* USER CODE BEGIN TIM2_Init 1 */ /* USER CODE END TIM2_Init 1 / htim2.Instance = TIM2; htim2.Init.Prescaler = 0; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 255-1; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) { Error_Handler(); } sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 0; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN TIM2_Init 2 */ /* USER CODE END TIM2_Init 2 */ HAL_TIM_MspPostInit(&htim2); } /** @brief TIM3 Initialization Function @param None @retval None */ static void MX_TIM3_Init(void) { /* USER CODE BEGIN TIM3_Init 0 */ /* USER CODE END TIM3_Init 0 */ TIM_Encoder_InitTypeDef sConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM3_Init 1 */ /* USER CODE END TIM3_Init 1 / htim3.Instance = TIM3; htim3.Init.Prescaler = 0; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 2000; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; sConfig.EncoderMode = TIM_ENCODERMODE_TI1; sConfig.IC1Polarity = TIM_ICPOLARITY_RISING; sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI; sConfig.IC1Prescaler = TIM_ICPSC_DIV1; sConfig.IC1Filter = 0; sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; sConfig.IC2Prescaler = TIM_ICPSC_DIV1; sConfig.IC2Filter = 0; if (HAL_TIM_Encoder_Init(&htim3, &sConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN TIM3_Init 2 */ /* USER CODE END TIM3_Init 2 */ } /** @brief TIM4 Initialization Function @param None @retval None */ static void MX_TIM4_Init(void) { /* USER CODE BEGIN TIM4_Init 0 */ /* USER CODE END TIM4_Init 0 */ TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM4_Init 1 */ /* USER CODE END TIM4_Init 1 / htim4.Instance = TIM4; htim4.Init.Prescaler = 72-1; htim4.Init.CounterMode = TIM_COUNTERMODE_UP; htim4.Init.Period = 10000-1; htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim4) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN TIM4_Init 2 */ /* USER CODE END TIM4_Init 2 */ } /** @brief TIM5 Initialization Function @param None @retval None */ static void MX_TIM5_Init(void) { /* USER CODE BEGIN TIM5_Init 0 */ /* USER CODE END TIM5_Init 0 */ TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM5_Init 1 */ /* USER CODE END TIM5_Init 1 / htim5.Instance = TIM5; htim5.Init.Prescaler = 72-1; htim5.Init.CounterMode = TIM_COUNTERMODE_UP; htim5.Init.Period = 1000-1; htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim5) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN TIM5_Init 2 */ /* USER CODE END TIM5_Init 2 */ } /** @brief USART1 Initialization Function @param None @retval None */ static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init 0 */ /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 / huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN USART1_Init 2 */ /* USER CODE END USART1_Init 2 */ } /** @brief GPIO Initialization Function @param None @retval None */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOE, C_Pin|D_Pin|E_Pin|F_Pin |G_Pin|A_Pin|B_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, S0_Pin|S1_Pin|S2_Pin|S3_Pin |GPIO_PIN_6|GPIO_PIN_8|GPIO_PIN_9, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_RESET); /*Configure GPIO pins : C_Pin D_Pin E_Pin F_Pin G_Pin A_Pin B_Pin */ GPIO_InitStruct.Pin = C_Pin|D_Pin|E_Pin|F_Pin |G_Pin|A_Pin|B_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pins : S0_Pin S1_Pin S2_Pin S3_Pin PC6 PC8 PC9 */ GPIO_InitStruct.Pin = S0_Pin|S1_Pin|S2_Pin|S3_Pin |GPIO_PIN_6|GPIO_PIN_8|GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pins : PB1 PB8 */ GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : PD7 */ GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); } /* USER CODE BEGIN 4 / / USER CODE BEGIN 4 */ void print_network_information(void) { wizchip_getnetinfo(&gWIZNETINFO); printf(“Mac address: %02x:%02x:%02x:%02x:%02x:%02x\n\r”,gWIZNETINFO.mac[0],gWIZNETINFO.mac[1],gWIZNETINFO.mac[2],gWIZNETINFO.mac[3],gWIZNETINFO.mac[4],gWIZNETINFO.mac[5]); printf(“IP address : %d.%d.%d.%d\n\r”,gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3]); printf(“SN Mask : %d.%d.%d.%d\n\r”,gWIZNETINFO.sn[0],gWIZNETINFO.sn[1],gWIZNETINFO.sn[2],gWIZNETINFO.sn[3]); printf(“Gate way : %d.%d.%d.%d\n\r”,gWIZNETINFO.gw[0],gWIZNETINFO.gw[1],gWIZNETINFO.gw[2],gWIZNETINFO.gw[3]); printf(“DNS Server : %d.%d.%d.%d\n\r”,gWIZNETINFO.dns[0],gWIZNETINFO.dns[1],gWIZNETINFO.dns[2],gWIZNETINFO.dns[3]); printf(“LLA : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\r\n”,gWIZNETINFO.lla[0],gWIZNETINFO.lla[1],gWIZNETINFO.lla[2],gWIZNETINFO.lla[3], gWIZNETINFO.lla[4],gWIZNETINFO.lla[5],gWIZNETINFO.lla[6],gWIZNETINFO.lla[7], gWIZNETINFO.lla[8],gWIZNETINFO.lla[9],gWIZNETINFO.lla[10],gWIZNETINFO.lla[11], gWIZNETINFO.lla[12],gWIZNETINFO.lla[13],gWIZNETINFO.lla[14],gWIZNETINFO.lla[15]); printf(“GUA : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\n\r”,gWIZNETINFO.gua[0],gWIZNETINFO.gua[1],gWIZNETINFO.gua[2],gWIZNETINFO.gua[3], gWIZNETINFO.gua[4],gWIZNETINFO.gua[5],gWIZNETINFO.gua[6],gWIZNETINFO.gua[7], gWIZNETINFO.gua[8],gWIZNETINFO.gua[9],gWIZNETINFO.gua[10],gWIZNETINFO.gua[11], gWIZNETINFO.gua[12],gWIZNETINFO.gua[13],gWIZNETINFO.gua[14],gWIZNETINFO.gua[15]); printf(“SN6 : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\n\r”,gWIZNETINFO.sn6[0],gWIZNETINFO.sn6[1],gWIZNETINFO.sn6[2],gWIZNETINFO.sn6[3], gWIZNETINFO.sn6[4],gWIZNETINFO.sn6[5],gWIZNETINFO.sn6[6],gWIZNETINFO.sn6[7], gWIZNETINFO.sn6[8],gWIZNETINFO.sn6[9],gWIZNETINFO.sn6[10],gWIZNETINFO.sn6[11], gWIZNETINFO.sn6[12],gWIZNETINFO.sn6[13],gWIZNETINFO.sn6[14],gWIZNETINFO.sn6[15]); printf(“GW6 : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\r\n”,gWIZNETINFO.gw6[0],gWIZNETINFO.gw6[1],gWIZNETINFO.gw6[2],gWIZNETINFO.gw6[3], gWIZNETINFO.gw6[4],gWIZNETINFO.gw6[5],gWIZNETINFO.gw6[6],gWIZNETINFO.gw6[7], gWIZNETINFO.gw6[8],gWIZNETINFO.gw6[9],gWIZNETINFO.gw6[10],gWIZNETINFO.gw6[11], gWIZNETINFO.gw6[12],gWIZNETINFO.gw6[13],gWIZNETINFO.gw6[14],gWIZNETINFO.gw6[15]); } void wep_define_func(void) { // Index page and netinfo / base64 image demo reg_httpServer_webContent((uint8_t *)“index.html”, (uint8_t *)index_page); // index.html : Main page example reg_httpServer_webContent((uint8_t *)“netinfo.html”, (uint8_t *)netinfo_page); // netinfo.html : Network information example page reg_httpServer_webContent((uint8_t *)“netinfo.js”, (uint8_t *)wiz6100web_netinfo_js); // netinfo.js : JavaScript for Read Network configuration (+ ajax.js) reg_httpServer_webContent((uint8_t *)“img.html”, (uint8_t *)img_page); // img.html : Base64 Image data example page // Example #1 reg_httpServer_webContent((uint8_t *)"dio.html", (uint8_t *)dio_page); // dio.html : Digital I/O control example page reg_httpServer_webContent((uint8_t *)"dio.js", (uint8_t *)wiz6100web_dio_js); // dio.js : JavaScript for digital I/O control (+ ajax.js) // AJAX JavaScript functions reg_httpServer_webContent((uint8_t *)"ajax.js", (uint8_t *)wiz6100web_ajax_js); // ajax.js : JavaScript for AJAX request transfer } /* USER CODE END 4 */ /** @brief This function is executed in case of error occurrence. @retval None / void Error_Handler(void) { / USER CODE BEGIN Error_Handler_Debug / / User can add his own implementation to report the HAL error return state */ /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** @brief Reports the name of the source file and the source line number where the assert_param error has occurred. @param file: pointer to the source file name @param line: assert_param error line source number @retval None */ void assert_failed(uint8_t file, uint32_t line) { / USER CODE BEGIN 6 / / User can add his own implementation to report the file name and line number, tex: printf(“Wrong parameters value: file %s on line %d\r\n”, file, line) / / USER CODE END 6 / } #endif / USE_FULL_ASSERT */ /************************ (C) COPYRIGHT STMicroelectronics *END OF FILE/

### Reply 26 by con3723, 2019-06-17

위에 보낸 코드는 W6100-EVB 보드에서 실행하는 코드 입니다.
W6100-EVB 에서 카운터 하나만 되게 코딩 부탁 드립니다.

### Reply 27 by teddy, 2019-06-17

안녕하세요 타이머 인터럽트를 이용한 GPIO blnk 추가 된 것입니다. /* USER CODE BEGIN Header / /* @file : main.c @brief : Main program body @attention © Copyright (c) 2019 STMicroelectronics. All rights reserved. This software component is licensed by ST under BSD 3-Clause license, the “License”; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause / / USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include “main.h” /* Private includes ----------------------------------------------------------/ / USER CODE BEGIN Includes / #include “loopback.h” #include “socket.h” #include “httpServer.h” #include “webpage.h” #include “board_init.h” / USER CODE END Includes */ /* Private typedef -----------------------------------------------------------/ / USER CODE BEGIN PTD */ #define SOCK_TCPS 0 #define SOCK_UDPS 1 #define PORT_TCPS 5000 #define PORT_UDPS 3000 #define MAX_HTTPSOCK 4 // Addfess Family v4 #define AF_INET 2 // Addfess Family v6 #define AF_INET6 23 // Addfess Family DUAL #define AF_INET_DUAL 11 /* USER CODE END PTD */ /* Private define ------------------------------------------------------------/ / USER CODE BEGIN PD / uint8_t socknumlist[] = {0, 1, 2, 3}; uint8_t RX_BUF[DATA_BUF_SIZE]; uint8_t TX_BUF[DATA_BUF_SIZE]; uint8_t URX_BUF[DATA_BUF_SIZE]; unsigned int URX_BUF_cnt = 0; unsigned int URX_BUF_Flag = 0; / USER CODE END PD */ /* Private macro -------------------------------------------------------------/ / USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ RTC_HandleTypeDef hrtc; SPI_HandleTypeDef hspi2; TIM_HandleTypeDef htim3; UART_HandleTypeDef huart1; /* USER CODE BEGIN PV */ wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0xff,0xff}, .ip = {192,168,0,13}, .sn = {255, 255, 255, 0}, .gw = {192, 168, 0, 1}, .dns = {168, 126, 63, 1}, .lla = {0xfe,0x80, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x02,0x00, 0xdc,0xff, 0xfe,0x57, 0x57,0x62}, .gua={0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00}, .sn6={0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00, 0x00, 0x00,0x00,0x00,0x00}, .gw6={0x00, 0x00, 0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00} }; uint8_t WIZ_Dest_IP[4] = {192, 168, 0, 232}; //DST_IP Address uint8_t DestIP6_L[16] = {0xfe,0x80, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x31,0x71,0x98,0x05, 0x70,0x24,0x4b,0xb1 }; uint8_t DestIP6_G[16] = {0x20,0x01,0x02,0xb8, 0x00,0x10,0x00,0x01, 0x31,0x71,0x98,0x05, 0x70,0x24,0x4b,0xb1 }; uint8_t Router_IP[16]= {0xff,0x02,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02 }; uint8_t data_buf[2048]; void print_network_information(void); void wep_define_func(void); /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_SPI2_Init(void); static void MX_USART1_UART_Init(void); static void MX_RTC_Init(void); static void MX_TIM3_Init(void); / USER CODE BEGIN PFP */ uint8_t rxData; // Using printf Function int _write(int fd, char *str, int len) { for(int i=0; i&lt;len; i++) { HAL_UART_Transmit(&huart1, (uint8_t *)&str[i], 1, 0xFFFF); } return len; } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* This will be called once data is received successfully, via interrupts. */ /* loop back received data */ HAL_UART_Receive_IT(&huart1, &rxData, 1); HAL_UART_Transmit(&huart1, &rxData, 1, 1000); //massage input end enter key flag URX_BUF[URX_BUF_cnt++] = rxData; if((rxData == '\r') ||(URX_BUF_cnt > DATA_BUF_SIZE)) { URX_BUF_Flag = 1; } } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef htim) { if(htim->Instance == TIM3) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_6); } } / USER CODE END PFP */ /* Private user code ---------------------------------------------------------/ / USER CODE BEGIN 0 */ /* USER CODE END 0 */ /** @brief The application entry point. @retval int / int main(void) { / USER CODE BEGIN 1 / uint8_t syslock = SYS_NET_LOCK; uint8_t i; / USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals / MX_GPIO_Init(); MX_SPI2_Init(); MX_USART1_UART_Init(); MX_RTC_Init(); MX_TIM3_Init(); / USER CODE BEGIN 2 */ HAL_UART_Receive_IT(&huart1, &rxData, 1); printf(“&lt; W6100EVB Web Server & Loop Back TEST!! > \r\n”); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_SET); HAL_TIM_Base_Start_IT(&htim3); BoardInitialze(); ctlwizchip(CW_SYS_UNLOCK,& syslock); ctlnetwork(CN_SET_NETINFO,&gWIZNETINFO); printf(“VERSION(%x) = %.2x \r\n”, VER, getVER()); print_network_information(); /* HTTP Server Initialization */ httpServer_init(TX_BUF, RX_BUF, MAX_HTTPSOCK, socknumlist); // Tx/Rx buffers (1kB) / The number of W5500 chip H/W sockets in use /* Web content registration (web content in webpage.h, Example web pages) */ wep_define_func(); /* USER CODE END 2 */ /* Infinite loop / / USER CODE BEGIN WHILE / while (1) { / USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //message input serial display & send tcp client message if(URX_BUF_Flag) { URX_BUF_Flag = 0; URX_BUF[URX_BUF_cnt] = 0; printf("\r\n input:%s\r\n", URX_BUF); if(getSn_SR(1) == SOCK_ESTABLISHED) send(1, URX_BUF, URX_BUF_cnt); URX_BUF_cnt = 0; } //HTTP Server for(i = 0; i &lt; MAX_HTTPSOCK; i++) httpServer_run(i); // HTTP Server handler //loopback server loopback_tcps(5, data_buf, 5000, AS_IPV6); loopback_tcps(6, data_buf, 5001, AS_IPV4); } /* USER CODE END 3 */ } /** @brief System Clock Configuration @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; /** Initializes the CPU, AHB and APB busses clocks / RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /* Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler(); } PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC; PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { Error_Handler(); } } /** @brief RTC Initialization Function @param None @retval None */ static void MX_RTC_Init(void) { /* USER CODE BEGIN RTC_Init 0 */ /* USER CODE END RTC_Init 0 */ RTC_TimeTypeDef sTime = {0}; RTC_DateTypeDef DateToUpdate = {0}; /* USER CODE BEGIN RTC_Init 1 */ /* USER CODE END RTC_Init 1 / /* Initialize RTC Only */ hrtc.Instance = RTC; hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; hrtc.Init.OutPut = RTC_OUTPUTSOURCE_ALARM; if (HAL_RTC_Init(&hrtc) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN Check_RTC_BKUP */ /* USER CODE END Check_RTC_BKUP */ /** Initialize RTC and set the Time and Date */ sTime.Hours = 0x0; sTime.Minutes = 0x0; sTime.Seconds = 0x0; if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK) { Error_Handler(); } DateToUpdate.WeekDay = RTC_WEEKDAY_MONDAY; DateToUpdate.Month = RTC_MONTH_JANUARY; DateToUpdate.Date = 0x1; DateToUpdate.Year = 0x0; if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN RTC_Init 2 */ /* USER CODE END RTC_Init 2 */ } /** @brief SPI2 Initialization Function @param None @retval None */ static void MX_SPI2_Init(void) { /* USER CODE BEGIN SPI2_Init 0 */ /* USER CODE END SPI2_Init 0 */ /* USER CODE BEGIN SPI2_Init 1 */ /* USER CODE END SPI2_Init 1 / / SPI2 parameter configuration*/ hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.Direction = SPI_DIRECTION_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi2.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi2) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI2_Init 2 */ /* USER CODE END SPI2_Init 2 */ } /** @brief TIM3 Initialization Function @param None @retval None */ static void MX_TIM3_Init(void) { /* USER CODE BEGIN TIM3_Init 0 */ /* USER CODE END TIM3_Init 0 */ TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_SlaveConfigTypeDef sSlaveConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM3_Init 1 */ /* USER CODE END TIM3_Init 1 / htim3.Instance = TIM3; htim3.Init.Prescaler = 18000-1; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 499; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; if (HAL_TIM_Base_Init(&htim3) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } sSlaveConfig.SlaveMode = TIM_SLAVEMODE_DISABLE; sSlaveConfig.InputTrigger = TIM_TS_ITR0; if (HAL_TIM_SlaveConfigSynchronization(&htim3, &sSlaveConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN TIM3_Init 2 */ /* USER CODE END TIM3_Init 2 */ } /** @brief USART1 Initialization Function @param None @retval None */ static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init 0 */ /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 / huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN USART1_Init 2 */ /* USER CODE END USART1_Init 2 */ } /** @brief GPIO Initialization Function @param None @retval None */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6|GPIO_PIN_8|GPIO_PIN_9, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_RESET); /*Configure GPIO pins : PB1 PB8 */ GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : PC6 PC8 PC9 */ GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_8|GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : PD7 */ GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); } /* USER CODE BEGIN 4 / / USER CODE BEGIN 4 */ void print_network_information(void) { wizchip_getnetinfo(&gWIZNETINFO); printf(“Mac address: %02x:%02x:%02x:%02x:%02x:%02x\n\r”,gWIZNETINFO.mac[0],gWIZNETINFO.mac[1],gWIZNETINFO.mac[2],gWIZNETINFO.mac[3],gWIZNETINFO.mac[4],gWIZNETINFO.mac[5]); printf(“IP address : %d.%d.%d.%d\n\r”,gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3]); printf(“SN Mask : %d.%d.%d.%d\n\r”,gWIZNETINFO.sn[0],gWIZNETINFO.sn[1],gWIZNETINFO.sn[2],gWIZNETINFO.sn[3]); printf(“Gate way : %d.%d.%d.%d\n\r”,gWIZNETINFO.gw[0],gWIZNETINFO.gw[1],gWIZNETINFO.gw[2],gWIZNETINFO.gw[3]); printf(“DNS Server : %d.%d.%d.%d\n\r”,gWIZNETINFO.dns[0],gWIZNETINFO.dns[1],gWIZNETINFO.dns[2],gWIZNETINFO.dns[3]); printf(“LLA : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\r\n”,gWIZNETINFO.lla[0],gWIZNETINFO.lla[1],gWIZNETINFO.lla[2],gWIZNETINFO.lla[3], gWIZNETINFO.lla[4],gWIZNETINFO.lla[5],gWIZNETINFO.lla[6],gWIZNETINFO.lla[7], gWIZNETINFO.lla[8],gWIZNETINFO.lla[9],gWIZNETINFO.lla[10],gWIZNETINFO.lla[11], gWIZNETINFO.lla[12],gWIZNETINFO.lla[13],gWIZNETINFO.lla[14],gWIZNETINFO.lla[15]); printf(“GUA : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\n\r”,gWIZNETINFO.gua[0],gWIZNETINFO.gua[1],gWIZNETINFO.gua[2],gWIZNETINFO.gua[3], gWIZNETINFO.gua[4],gWIZNETINFO.gua[5],gWIZNETINFO.gua[6],gWIZNETINFO.gua[7], gWIZNETINFO.gua[8],gWIZNETINFO.gua[9],gWIZNETINFO.gua[10],gWIZNETINFO.gua[11], gWIZNETINFO.gua[12],gWIZNETINFO.gua[13],gWIZNETINFO.gua[14],gWIZNETINFO.gua[15]); printf(“SN6 : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\n\r”,gWIZNETINFO.sn6[0],gWIZNETINFO.sn6[1],gWIZNETINFO.sn6[2],gWIZNETINFO.sn6[3], gWIZNETINFO.sn6[4],gWIZNETINFO.sn6[5],gWIZNETINFO.sn6[6],gWIZNETINFO.sn6[7], gWIZNETINFO.sn6[8],gWIZNETINFO.sn6[9],gWIZNETINFO.sn6[10],gWIZNETINFO.sn6[11], gWIZNETINFO.sn6[12],gWIZNETINFO.sn6[13],gWIZNETINFO.sn6[14],gWIZNETINFO.sn6[15]); printf(“GW6 : %.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X:%.2X%.2X\r\n”,gWIZNETINFO.gw6[0],gWIZNETINFO.gw6[1],gWIZNETINFO.gw6[2],gWIZNETINFO.gw6[3], gWIZNETINFO.gw6[4],gWIZNETINFO.gw6[5],gWIZNETINFO.gw6[6],gWIZNETINFO.gw6[7], gWIZNETINFO.gw6[8],gWIZNETINFO.gw6[9],gWIZNETINFO.gw6[10],gWIZNETINFO.gw6[11], gWIZNETINFO.gw6[12],gWIZNETINFO.gw6[13],gWIZNETINFO.gw6[14],gWIZNETINFO.gw6[15]); } void wep_define_func(void) { // Index page and netinfo / base64 image demo reg_httpServer_webContent((uint8_t *)“index.html”, (uint8_t *)index_page); // index.html : Main page example reg_httpServer_webContent((uint8_t *)“netinfo.html”, (uint8_t *)netinfo_page); // netinfo.html : Network information example page reg_httpServer_webContent((uint8_t *)“netinfo.js”, (uint8_t *)wiz6100web_netinfo_js); // netinfo.js : JavaScript for Read Network configuration (+ ajax.js) reg_httpServer_webContent((uint8_t *)“img.html”, (uint8_t *)img_page); // img.html : Base64 Image data example page // Example #1 reg_httpServer_webContent((uint8_t *)"dio.html", (uint8_t *)dio_page); // dio.html : Digital I/O control example page reg_httpServer_webContent((uint8_t *)"dio.js", (uint8_t *)wiz6100web_dio_js); // dio.js : JavaScript for digital I/O control (+ ajax.js) // AJAX JavaScript functions reg_httpServer_webContent((uint8_t *)"ajax.js", (uint8_t *)wiz6100web_ajax_js); // ajax.js : JavaScript for AJAX request transfer } /* USER CODE END 4 */ /** @brief This function is executed in case of error occurrence. @retval None / void Error_Handler(void) { / USER CODE BEGIN Error_Handler_Debug / / User can add his own implementation to report the HAL error return state */ /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** @brief Reports the name of the source file and the source line number where the assert_param error has occurred. @param file: pointer to the source file name @param line: assert_param error line source number @retval None */ void assert_failed(uint8_t file, uint32_t line) { / USER CODE BEGIN 6 / / User can add his own implementation to report the file name and line number, tex: printf(“Wrong parameters value: file %s on line %d\r\n”, file, line) / / USER CODE END 6 / } #endif / USE_FULL_ASSERT */ /************************ (C) COPYRIGHT STMicroelectronics *END OF FILE/

### Reply 28 by con3723, 2019-06-17

대단히 감사합니다.
앞으로 잘 부탁 드립니다.

### Reply 29 by teddy, 2019-06-17

지금까지는 저희 칩과 관련 되지 않는 부분에 대하여 지원을 해드렸지만
앞으로는 저희 칩과 관련되지 않은 부분에 대하여는 유상으로 지원이 가능할 것 같습니다.
감사합니다.

### Reply 30 by con3723, 2019-06-17

유상 이라면 그 금액이 얼마나 됩니까.

### Reply 31 by teddy, 2019-06-19

안녕하세요
개발용역에 관련 문의는 김연섭 이사님께 문의 하시기 바랍니다.
Email : jameskim@wiznet.io
감사합니다.

### Reply 32 by con3723, 2019-06-21

[![%EC%A0%9C%EB%AA%A9%20%EC%97%86%EC%9D%8C](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/f/f127f8a98f4581cdd5bfebd848c2f19f5e356bac.gif) %EC%A0%9C%EB%AA%A9%20%EC%97%86%EC%9D%8C637×550 65.7 KB](https://maker.wiznet.io/forum_uploads/wiznet/original/2X/f/f127f8a98f4581cdd5bfebd848c2f19f5e356bac.gif)

### Reply 33 by becky, 2019-06-21

안녕하세요

Module IP 적는 부분에 192,168,0,13으로하셨는데 ,가 아닌 .으로 적으셔야 합니다.

### Reply 34 by con3723, 2019-06-21

마지막 ip 다른 숫자해도 마찬가지 입니다.

### Reply 35 by becky, 2019-06-21

Hercules에서 module ip에 쉼표가 아닌 마침표로 적으셔야합니다.

### Reply 36 by con3723, 2019-06-21

아 ! 마침표 감사합니다.
여기서는 ip 재 설정하는 부분은 어디 있습니까.

### Reply 37 by irina, 2019-07-02

안녕하세요.
IP 재설정이라는거 어떤걸 얘기하시는걸까요?

감사합니다.
irina

### Reply 38 by con3723, 2019-07-02

안녕하세요.

ip 192.168.0.13 을 192.168.0.20 으로 설정하는 것을 말하는 것입니다.잘 됩니다.

감사합니다.

---

Source: https://maker.wiznet.io/forum/13355
