HTTP SD Card File Server
Dependencies: SDFileSystem WIZnetInterface mbed
Fork of HTTP_SD_Server_K64F by
Prerequisite
This Program is the example how to show SD card file list with web-browser for WIZwiki-W7500.
To implement this function, you need a Platform board, network Interface board and SD card. Below are what we used.
- WIZwiki-W7500 from WIZnet (Platform board and Ethernet I/F board)
- SD card
Hardware Configuration
WIZwiki-W7500 Pin map
Software
SPI Initialization
main.cpp
SDFileSystem sd(PB_3, PB_2, PB_1, PB_0, "sd");
Refer to ....
- Wiki : /teams/WIZnet/code/HTTP_SDCard_File_Server_WIZwiki-W7500/wiki/HTTP_SDCard_File_Server_WIZwiki-W7500
- Korean Version : http://midnightcow.tistory.com/category/위즈네트/WIZwiki-W7500
Diff: main.cpp
- Revision:
- 8:4b43259a1e33
- Parent:
- 7:04744a9ce2b9
- Child:
- 9:d0615c97295e
--- a/main.cpp Sun Apr 12 03:04:28 2015 +0000 +++ b/main.cpp Fri Jun 26 01:17:43 2015 +0000 @@ -4,6 +4,12 @@ #include <stdio.h> #include <string.h> + +#define MAC "\x00\x08\xDC\x11\x34\x78" +#define IP "192.168.77.100" +#define MASK "255.255.255.0" +#define GATEWAY "192.168.77.1" + #define HTTPD_SERVER_PORT 80 #define HTTPD_MAX_REQ_LENGTH 1023 #define HTTPD_MAX_HDR_LENGTH 255 @@ -14,7 +20,8 @@ //SDFileSystem sd(p5, p6, p7, p8, "sd"); // LPC1768 MBD2PMD //SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // Seeeduino Arch Pro SPI2SD -SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // K64F +//SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // K64F +SDFileSystem sd(PB_3, PB_2, PB_1, PB_0, "sd"); // WIZwiki-W7500 EthernetInterface eth; TCPSocketServer server; @@ -31,6 +38,18 @@ FILE *fp; int rdCnt; +DigitalOut led1(LED1); //server listning status +DigitalOut led2(LED2); //socket connecting status + +Ticker ledTick; + +void ledTickfunc() +{ + led1 = !led1; +} + + + void get_file(char* uri) { uart.printf("get_file %s\n", uri); @@ -88,6 +107,7 @@ int main (void) { + ledTick.attach(&ledTickfunc,0.5); // Serial Interface eth; uart.baud(115200); uart.printf("Initializing\n"); @@ -103,7 +123,8 @@ // EthernetInterface eth; uart.printf("Initializing Ethernet\n"); - eth.init(); //Use DHCP + //eth.init(); //Use DHCP + eth.init((uint8_t*)MAC,IP,MASK,GATEWAY); //IP,mask,Gateway uart.printf("Connecting\n"); eth.connect(); uart.printf("IP Address is %s\n", eth.getIPAddress()); @@ -120,6 +141,7 @@ uart.printf("Connection from: %s\r\n", client.get_address()); while (true) { + led2 = true; int n = client.receive(buffer, sizeof(buffer)); if (n <= 0) break; uart.printf("Recieved Data: %d\r\n\r\n%.*s\r\n",n,n,buffer); @@ -144,7 +166,7 @@ } } } - + led2 = false; client.close(); } }