Initial Example Project

Dependencies:   SDFileSystem WIZnet_Library mbed

Fork of Nucleo_L152RE_W5500HelloWorld_ver2 by Edward ahn

Revision:
2:a2cf65b34267
Parent:
1:9a6af61c5eb4
Child:
3:fa8925fb003a
--- a/main.cpp	Sun May 17 11:12:56 2015 +0000
+++ b/main.cpp	Mon Jan 18 01:47:44 2016 +0000
@@ -1,30 +1,34 @@
+// Nucloe_L152RE_W5500_Ethernet shield Exmaple
+
 #include "mbed.h"
 #include "WIZnetInterface.h"
+#include "SDFileSystem.h"
+#include "UDPSocket.h"
 
-#define USE_DHCP    1
-
-#define LOOPBACKPORT    5000
+//#define USE_DHCP    1 // DHCP 사용할때 사용
+//#define USE_UDP     1
+#define USE_TCP     1
 
-const char * IP_Addr    = "192.168.11.194";
+#define TCP_PORT    5000
+#define UDP_PORT    7000
+
+const char * IP_Addr    = "192.168.0.194";
 const char * IP_Subnet  = "255.255.255.0";
-const char * IP_Gateway = "192.168.11.1";
-unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x34,0x56};
+const char * IP_Gateway = "192.168.0.1";
+unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x01,0x02,0x03};
+
+const char * UDP_IP = "0.0.0.0";
+
+SDFileSystem sd(PA_7, PA_6, PA_5, PB_5, "sd");
 
 DigitalOut myled1(LED1);
 Serial pc(USBTX, USBRX);
 
-#ifdef TARGET_LPC11U68
-    SPI spi(P0_9,P0_8,P1_29);
-    WIZnetInterface ethernet(&spi,P0_2,P1_13);
-#elif defined(TARGET_NUCLEO_F103RB)
-    SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
-    WIZnetInterface ethernet(&spi, PB_6, PA_9);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
-#endif
+SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
+WIZnetInterface ethernet(&spi, PB_6, PA_9);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
 
 int main() {
-    
-    mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
-    
+
     //Set serial port baudrate speed: 115200
     pc.baud(115200);
     wait(10);
@@ -32,11 +36,25 @@
 
     char buffer[256];
     
+    //SD-CARD
+    printf("Hello World!\n");   
+    mkdir("/sd/mydir", 0777);
+    FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
+    if(fp == NULL) {
+        error("Could not open file for write\n");
+    }
+    fprintf(fp, "Hello fun SD Card World!");
+    fclose(fp); 
+    printf("Goodbye World!\n");
+    //SD-CARD END 
+    
     while(1)
     {
         #if USE_DHCP
+        pc.printf("DHCP ON \r\n");
         int ret = ethernet.init(MAC_Addr);
         #else
+        pc.printf("DHCP OFF \r\n");
         int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
         #endif
         
@@ -62,16 +80,34 @@
             pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
             exit(0);
         }
+#if USE_UDP
+        UDPSocket UDP_server;
+        UDP_server.init();
+        Endpoint nist;
         
+        nist.set_address(UDP_IP, UDP_PORT);
+        UDP_server.bind(UDP_PORT);
+        pc.printf("UDP PORT %d \r\n", UDP_PORT);
+        pc.printf("\nWait for message...\r\n");
+        
+        while (1) {
+            int n = UDP_server.receiveFrom(nist, buffer, sizeof(buffer));
+            if(n > 0){
+                UDP_server.sendTo(nist, buffer, n);
+            }
+        }
+#endif
+#if USE_TCP
         TCPSocketServer server;
-        server.bind(LOOPBACKPORT);
+        server.bind(TCP_PORT);
+        pc.printf("TCP PORT %d \r\n", TCP_PORT);
         server.listen();
         
         while (1) {
             pc.printf("\nWait for new connection...\r\n");
             TCPSocketConnection client;
             server.accept(client);
-            client.set_blocking(false, 0); // Timeout=0.
+            //client.set_blocking(false, 0); // Timeout=0.
             pc.printf("Connection from: %s\r\n", client.get_address());
             while (client.is_connected() == true) {
                 int n = client.receive(buffer, sizeof(buffer));
@@ -82,5 +118,6 @@
             }
             pc.printf("Disconnected.\r\n");
         }
+#endif
     }
 }