Nucleo_L152RE_W5500HelloWorld_ver2
Dependencies: SDFileSystem WIZnet_Library mbed
Fork of Nucleo_L152RE_W5500HelloWorld by
main.cpp
00001 // Nucloe_L152RE_W5500_Ethernet shield Exmaple 00002 00003 #include "mbed.h" 00004 #include "WIZnetInterface.h" 00005 #include "SDFileSystem.h" 00006 #include "UDPSocket.h" 00007 00008 //#define USE_DHCP 1 // DHCP 사용할때 사용 00009 00010 #define TCP_PORT 5000 00011 #define UDP_PORT 7000 00012 00013 const char * IP_Addr = "192.168.0.194"; 00014 const char * IP_Subnet = "255.255.255.0"; 00015 const char * IP_Gateway = "192.168.0.1"; 00016 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x01,0x02,0x03}; 00017 00018 const char * UDP_IP = "0.0.0.0"; 00019 00020 SDFileSystem sd(PA_7, PA_6, PA_5, PB_5, "sd"); 00021 00022 DigitalOut myled1(LED1); 00023 Serial pc(USBTX, USBRX); 00024 00025 SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk 00026 WIZnetInterface ethernet(&spi, PB_6, PC_7);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io 00027 00028 int main() { 00029 00030 //Set serial port baudrate speed: 115200 00031 pc.baud(115200); 00032 wait(10); 00033 pc.printf("W5500 Application Started \r\n"); 00034 00035 char buffer[128]; 00036 00037 //SD-CARD 00038 printf("Hello World!\n"); 00039 mkdir("/sd/mydir", 0777); 00040 FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); 00041 if(fp == NULL) { 00042 error("Could not open file for write\n"); 00043 } 00044 fprintf(fp, "Hello fun SD Card World!"); 00045 fclose(fp); 00046 printf("Goodbye World!\r\n"); 00047 //SD-CARD END 00048 00049 while(1) 00050 { 00051 #if USE_DHCP 00052 pc.printf("DHCP ON \r\n"); 00053 int ret = ethernet.init(MAC_Addr); 00054 #else 00055 pc.printf("DHCP OFF \r\n"); 00056 int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway); 00057 #endif 00058 00059 00060 printf("SPI Initialized \r\n"); 00061 wait(1); // 1 second for stable state 00062 00063 printf("W5500 Networking Started \r\n"); 00064 wait(1); // 1 second for stable state 00065 00066 00067 if (!ret) { 00068 pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress()); 00069 ret = ethernet.connect(); 00070 if (!ret) { 00071 pc.printf("IP: %s, MASK: %s, GW: %s\r\n", 00072 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()); 00073 } else { 00074 pc.printf("Error ethernet.connect() - ret = %d\r\n", ret); 00075 exit(0); 00076 } 00077 } else { 00078 pc.printf("Error ethernet.init() - ret = %d\r\n", ret); 00079 exit(0); 00080 } 00081 00082 TCPSocketServer TCP_server; // TCP Socket open 00083 UDPSocket UDP_server; // UDP Socket open 00084 00085 UDP_server.init(); 00086 Endpoint nist; 00087 nist.set_address(UDP_IP, UDP_PORT); 00088 UDP_server.bind(UDP_PORT); 00089 pc.printf("UDP PORT %d \r\n", UDP_PORT); 00090 00091 TCP_server.bind(TCP_PORT); 00092 pc.printf("TCP PORT %d \r\n", TCP_PORT); 00093 TCP_server.listen(); 00094 00095 pc.printf("server %s on port %d: \r\n", nist.get_address(), nist.get_port()); 00096 int m = UDP_server.receiveFrom(nist, buffer, sizeof(buffer)); 00097 if(m > 0){ 00098 UDP_server.sendTo(nist, buffer, m); 00099 pc.printf("UDP Data Send OK\r\n"); 00100 } 00101 pc.printf("UDP Close\r\n"); 00102 00103 while (1) { 00104 pc.printf("\nWait for TCP connection...\r\n"); 00105 TCPSocketConnection TCP_client; 00106 if(TCP_server.accept(TCP_client) == 0) 00107 { 00108 pc.printf("Connection from: %s\r\n", TCP_client.get_address()); 00109 while (TCP_client.is_connected() == true) { 00110 int n = TCP_client.receive(buffer, sizeof(buffer)); 00111 if(n > 0) 00112 TCP_client.send_all(buffer, n); 00113 if(TCP_client.is_fin_received()){ 00114 TCP_client.close(); 00115 } 00116 } 00117 } 00118 pc.printf("Disconnected.\r\n"); 00119 } 00120 } 00121 }
Generated on Tue Jul 12 2022 20:15:24 by 1.7.2