Nucleo_L152RE_W5500HelloWorld_ver2

Dependencies:   SDFileSystem WIZnet_Library mbed

Fork of Nucleo_L152RE_W5500HelloWorld by Edward ahn

Committer:
najgh08
Date:
Tue Jan 19 00:25:34 2016 +0000
Revision:
4:17797698535b
Parent:
3:fa8925fb003a
Reset pin change PA_9(D8) -> PC_7(D9)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
najgh08 2:a2cf65b34267 1 // Nucloe_L152RE_W5500_Ethernet shield Exmaple
najgh08 2:a2cf65b34267 2
bangbh 0:412f9c1172b7 3 #include "mbed.h"
bangbh 0:412f9c1172b7 4 #include "WIZnetInterface.h"
najgh08 2:a2cf65b34267 5 #include "SDFileSystem.h"
najgh08 2:a2cf65b34267 6 #include "UDPSocket.h"
bangbh 0:412f9c1172b7 7
najgh08 2:a2cf65b34267 8 //#define USE_DHCP 1 // DHCP 사용할때 사용
bangbh 0:412f9c1172b7 9
najgh08 3:fa8925fb003a 10 #define TCP_PORT 5000
najgh08 3:fa8925fb003a 11 #define UDP_PORT 7000
najgh08 2:a2cf65b34267 12
najgh08 2:a2cf65b34267 13 const char * IP_Addr = "192.168.0.194";
bangbh 0:412f9c1172b7 14 const char * IP_Subnet = "255.255.255.0";
najgh08 2:a2cf65b34267 15 const char * IP_Gateway = "192.168.0.1";
najgh08 2:a2cf65b34267 16 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x01,0x02,0x03};
najgh08 2:a2cf65b34267 17
najgh08 2:a2cf65b34267 18 const char * UDP_IP = "0.0.0.0";
najgh08 2:a2cf65b34267 19
najgh08 2:a2cf65b34267 20 SDFileSystem sd(PA_7, PA_6, PA_5, PB_5, "sd");
bangbh 0:412f9c1172b7 21
bangbh 0:412f9c1172b7 22 DigitalOut myled1(LED1);
bangbh 0:412f9c1172b7 23 Serial pc(USBTX, USBRX);
bangbh 0:412f9c1172b7 24
najgh08 2:a2cf65b34267 25 SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
najgh08 4:17797698535b 26 WIZnetInterface ethernet(&spi, PB_6, PC_7);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
bangbh 0:412f9c1172b7 27
bangbh 0:412f9c1172b7 28 int main() {
najgh08 3:fa8925fb003a 29
bangbh 0:412f9c1172b7 30 //Set serial port baudrate speed: 115200
bangbh 0:412f9c1172b7 31 pc.baud(115200);
kzl108 1:9a6af61c5eb4 32 wait(10);
kzl108 1:9a6af61c5eb4 33 pc.printf("W5500 Application Started \r\n");
bangbh 0:412f9c1172b7 34
najgh08 3:fa8925fb003a 35 char buffer[128];
najgh08 3:fa8925fb003a 36
najgh08 2:a2cf65b34267 37 //SD-CARD
najgh08 2:a2cf65b34267 38 printf("Hello World!\n");
najgh08 2:a2cf65b34267 39 mkdir("/sd/mydir", 0777);
najgh08 2:a2cf65b34267 40 FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
najgh08 2:a2cf65b34267 41 if(fp == NULL) {
najgh08 2:a2cf65b34267 42 error("Could not open file for write\n");
najgh08 2:a2cf65b34267 43 }
najgh08 2:a2cf65b34267 44 fprintf(fp, "Hello fun SD Card World!");
najgh08 2:a2cf65b34267 45 fclose(fp);
najgh08 3:fa8925fb003a 46 printf("Goodbye World!\r\n");
najgh08 2:a2cf65b34267 47 //SD-CARD END
najgh08 2:a2cf65b34267 48
bangbh 0:412f9c1172b7 49 while(1)
bangbh 0:412f9c1172b7 50 {
bangbh 0:412f9c1172b7 51 #if USE_DHCP
najgh08 2:a2cf65b34267 52 pc.printf("DHCP ON \r\n");
bangbh 0:412f9c1172b7 53 int ret = ethernet.init(MAC_Addr);
bangbh 0:412f9c1172b7 54 #else
najgh08 2:a2cf65b34267 55 pc.printf("DHCP OFF \r\n");
bangbh 0:412f9c1172b7 56 int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
bangbh 0:412f9c1172b7 57 #endif
bangbh 0:412f9c1172b7 58
kzl108 1:9a6af61c5eb4 59
kzl108 1:9a6af61c5eb4 60 printf("SPI Initialized \r\n");
kzl108 1:9a6af61c5eb4 61 wait(1); // 1 second for stable state
kzl108 1:9a6af61c5eb4 62
kzl108 1:9a6af61c5eb4 63 printf("W5500 Networking Started \r\n");
kzl108 1:9a6af61c5eb4 64 wait(1); // 1 second for stable state
kzl108 1:9a6af61c5eb4 65
kzl108 1:9a6af61c5eb4 66
bangbh 0:412f9c1172b7 67 if (!ret) {
bangbh 0:412f9c1172b7 68 pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
bangbh 0:412f9c1172b7 69 ret = ethernet.connect();
bangbh 0:412f9c1172b7 70 if (!ret) {
bangbh 0:412f9c1172b7 71 pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
bangbh 0:412f9c1172b7 72 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
bangbh 0:412f9c1172b7 73 } else {
bangbh 0:412f9c1172b7 74 pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
bangbh 0:412f9c1172b7 75 exit(0);
bangbh 0:412f9c1172b7 76 }
bangbh 0:412f9c1172b7 77 } else {
bangbh 0:412f9c1172b7 78 pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
bangbh 0:412f9c1172b7 79 exit(0);
bangbh 0:412f9c1172b7 80 }
najgh08 3:fa8925fb003a 81
najgh08 3:fa8925fb003a 82 TCPSocketServer TCP_server; // TCP Socket open
najgh08 3:fa8925fb003a 83 UDPSocket UDP_server; // UDP Socket open
najgh08 3:fa8925fb003a 84
najgh08 2:a2cf65b34267 85 UDP_server.init();
najgh08 2:a2cf65b34267 86 Endpoint nist;
najgh08 2:a2cf65b34267 87 nist.set_address(UDP_IP, UDP_PORT);
najgh08 2:a2cf65b34267 88 UDP_server.bind(UDP_PORT);
najgh08 2:a2cf65b34267 89 pc.printf("UDP PORT %d \r\n", UDP_PORT);
najgh08 3:fa8925fb003a 90
najgh08 3:fa8925fb003a 91 TCP_server.bind(TCP_PORT);
najgh08 3:fa8925fb003a 92 pc.printf("TCP PORT %d \r\n", TCP_PORT);
najgh08 3:fa8925fb003a 93 TCP_server.listen();
najgh08 3:fa8925fb003a 94
najgh08 3:fa8925fb003a 95 pc.printf("server %s on port %d: \r\n", nist.get_address(), nist.get_port());
najgh08 3:fa8925fb003a 96 int m = UDP_server.receiveFrom(nist, buffer, sizeof(buffer));
najgh08 3:fa8925fb003a 97 if(m > 0){
najgh08 3:fa8925fb003a 98 UDP_server.sendTo(nist, buffer, m);
najgh08 3:fa8925fb003a 99 pc.printf("UDP Data Send OK\r\n");
najgh08 3:fa8925fb003a 100 }
najgh08 3:fa8925fb003a 101 pc.printf("UDP Close\r\n");
najgh08 2:a2cf65b34267 102
najgh08 2:a2cf65b34267 103 while (1) {
najgh08 3:fa8925fb003a 104 pc.printf("\nWait for TCP connection...\r\n");
najgh08 3:fa8925fb003a 105 TCPSocketConnection TCP_client;
najgh08 3:fa8925fb003a 106 if(TCP_server.accept(TCP_client) == 0)
najgh08 3:fa8925fb003a 107 {
najgh08 3:fa8925fb003a 108 pc.printf("Connection from: %s\r\n", TCP_client.get_address());
najgh08 3:fa8925fb003a 109 while (TCP_client.is_connected() == true) {
najgh08 3:fa8925fb003a 110 int n = TCP_client.receive(buffer, sizeof(buffer));
najgh08 3:fa8925fb003a 111 if(n > 0)
najgh08 3:fa8925fb003a 112 TCP_client.send_all(buffer, n);
najgh08 3:fa8925fb003a 113 if(TCP_client.is_fin_received()){
najgh08 3:fa8925fb003a 114 TCP_client.close();
najgh08 3:fa8925fb003a 115 }
najgh08 3:fa8925fb003a 116 }
bangbh 0:412f9c1172b7 117 }
bangbh 0:412f9c1172b7 118 pc.printf("Disconnected.\r\n");
bangbh 0:412f9c1172b7 119 }
bangbh 0:412f9c1172b7 120 }
bangbh 0:412f9c1172b7 121 }