Sog update version

Dependencies:   NNN50_WIFI_API

Fork of mbed_SPIS_multiByte_example by Tsungta Wu

Committer:
tsungta
Date:
Wed Jun 21 08:54:26 2017 +0000
Revision:
7:0ea5460e0de3
Parent:
6:bce37a45b9cb
Add TCP send function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tsungta 4:8e796b751cd3 1 //#include "mbed.h"
tsungta 4:8e796b751cd3 2 //
tsungta 4:8e796b751cd3 3 //SPI spi(A1, A2, A3); // mosi, miso, sclk
tsungta 4:8e796b751cd3 4 //DigitalOut cs(A0);
tsungta 4:8e796b751cd3 5 //
tsungta 4:8e796b751cd3 6 //uint8_t tx_buf[32] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V'};
tsungta 4:8e796b751cd3 7 //
tsungta 4:8e796b751cd3 8 //int main() {
tsungta 4:8e796b751cd3 9 // // Chip must be deselected
tsungta 4:8e796b751cd3 10 // cs = 1;
tsungta 4:8e796b751cd3 11 //
tsungta 4:8e796b751cd3 12 // // Setup the spi for 8 bit data, high steady state clock,
tsungta 4:8e796b751cd3 13 // // second edge capture, with a 1MHz clock rate
tsungta 4:8e796b751cd3 14 // spi.format(8,1);
tsungta 4:8e796b751cd3 15 // spi.frequency(8000000);
tsungta 4:8e796b751cd3 16 //
tsungta 4:8e796b751cd3 17 // // Select the device by seting chip select low
tsungta 4:8e796b751cd3 18 // cs = 0;
tsungta 4:8e796b751cd3 19 //
tsungta 4:8e796b751cd3 20 // for(int i=0; i<32; i++)
tsungta 4:8e796b751cd3 21 // spi.write(tx_buf[i]);
tsungta 4:8e796b751cd3 22 // printf("End of transmission \r\n");
tsungta 4:8e796b751cd3 23 //
tsungta 4:8e796b751cd3 24 // // Deselect the device
tsungta 4:8e796b751cd3 25 // cs = 1;
tsungta 4:8e796b751cd3 26 //}
tsungta 4:8e796b751cd3 27
tsungta 0:b7415ae44dac 28 #include "mbed.h"
sog_yang 5:6a1155885fc9 29 #include "SPISlave_multiByte.h"
tsungta 0:b7415ae44dac 30
tsungta 7:0ea5460e0de3 31 #include "EthernetInterface.h"
tsungta 7:0ea5460e0de3 32 #include "WIFIDevice.h"
tsungta 7:0ea5460e0de3 33
tsungta 7:0ea5460e0de3 34 SPISlave_multiByte device(A1, A2, A3, p3); // mosi, miso, sclk, ssel
sog_yang 6:bce37a45b9cb 35 //SPISlave_multiByte device(p15, p9, p11, p29); // mosi, miso, sclk, ssel
tsungta 7:0ea5460e0de3 36 //SPISlave_multiByte device(A1, A0, A3, A2); // mosi, miso, sclk, ssel
tsungta 0:b7415ae44dac 37 Serial uart(USBTX, USBRX);
sog_yang 5:6a1155885fc9 38 DigitalOut myled(LED1);
tsungta 0:b7415ae44dac 39
tsungta 7:0ea5460e0de3 40 char* TCP_SERVER_ADDRESS = "192.168.2.7";
tsungta 7:0ea5460e0de3 41 int TCP_SERVER_PORT = 1030;
sog_yang 5:6a1155885fc9 42
sog_yang 5:6a1155885fc9 43 inline void hexview(const char *buffer, unsigned int size) {
sog_yang 5:6a1155885fc9 44 char byte[50];
sog_yang 5:6a1155885fc9 45 char text[20];
sog_yang 5:6a1155885fc9 46 bool big = false;
sog_yang 5:6a1155885fc9 47 int i;
sog_yang 5:6a1155885fc9 48 for(i = 0; i < size; ++i) {
sog_yang 5:6a1155885fc9 49 if((i&0xF) == 0x0) {
sog_yang 5:6a1155885fc9 50 if(big)
sog_yang 5:6a1155885fc9 51 printf("%04X: %-49s: %-20s\n", (i&~0xF), byte, text);
sog_yang 5:6a1155885fc9 52 big = false;
sog_yang 5:6a1155885fc9 53 byte[0] = '\0';
sog_yang 5:6a1155885fc9 54 text[0] = '\0';
sog_yang 5:6a1155885fc9 55 } else if((i&0xF) == 0x8) {
sog_yang 5:6a1155885fc9 56 big = true;
sog_yang 5:6a1155885fc9 57 byte[(i&0xF) * 3] = ' ';
sog_yang 5:6a1155885fc9 58 text[(i&0xF)] = ' ';
sog_yang 5:6a1155885fc9 59 }
sog_yang 5:6a1155885fc9 60 unsigned char value = buffer[i];
sog_yang 5:6a1155885fc9 61 text[(i&0xF) + 0 + big] = (value < 0x20 || value > 0x7F)? '.': value;
sog_yang 5:6a1155885fc9 62 text[(i&0xF) + 1 + big] = '\0';
sog_yang 5:6a1155885fc9 63 value = (buffer[i] &0xF0) >> 4;
sog_yang 5:6a1155885fc9 64 byte[(i&0xF) * 3 + 0 + big] = (value < 0xA)? (value + 0x30): (value + 0x37);
sog_yang 5:6a1155885fc9 65 value = (buffer[i] &0x0F);
sog_yang 5:6a1155885fc9 66 byte[(i&0xF) * 3 + 1 + big] = (value < 0xA)? (value + 0x30): (value + 0x37);
sog_yang 5:6a1155885fc9 67 byte[(i&0xF) * 3 + 2 + big] = ' ';
sog_yang 5:6a1155885fc9 68 byte[(i&0xF) * 3 + 3 + big] = '\0';
sog_yang 5:6a1155885fc9 69 }
sog_yang 5:6a1155885fc9 70 if(byte[0]) {
sog_yang 5:6a1155885fc9 71 uart.printf("%04X: %-49s: %-20s\n", (i&~0xF), byte, text);
sog_yang 5:6a1155885fc9 72 }
sog_yang 5:6a1155885fc9 73 uart.printf("\n");
sog_yang 5:6a1155885fc9 74 }
sog_yang 5:6a1155885fc9 75
tsungta 7:0ea5460e0de3 76 void scanCallback(tstrM2mWifiscanResult result)
tsungta 7:0ea5460e0de3 77 {
tsungta 7:0ea5460e0de3 78 printf("SSID: %s \n", result.au8SSID);
tsungta 7:0ea5460e0de3 79 printf("RSSI: %i \n", result.s8rssi);
tsungta 7:0ea5460e0de3 80 }
tsungta 7:0ea5460e0de3 81
tsungta 0:b7415ae44dac 82 int main() {
sog_yang 6:bce37a45b9cb 83 uart.baud(115200);
tsungta 0:b7415ae44dac 84 uart.printf("START!");
sog_yang 5:6a1155885fc9 85 device.format(8,0);
sog_yang 5:6a1155885fc9 86 myled = 1;
tsungta 7:0ea5460e0de3 87
tsungta 7:0ea5460e0de3 88 EthernetInterface eth;
tsungta 7:0ea5460e0de3 89 WIFIDevice wifi;
tsungta 7:0ea5460e0de3 90
tsungta 7:0ea5460e0de3 91 eth.init();
tsungta 7:0ea5460e0de3 92
tsungta 7:0ea5460e0de3 93 wifi.apScan(scanCallback);
tsungta 7:0ea5460e0de3 94
tsungta 7:0ea5460e0de3 95 wifi.setNetwork(M2M_WIFI_SEC_WPA_PSK, "TWCYNPC0209_Mac mini", "mayday55555");
tsungta 2:c520d7c7739d 96
tsungta 7:0ea5460e0de3 97 eth.connect();
tsungta 7:0ea5460e0de3 98
tsungta 7:0ea5460e0de3 99 if(wifi.is_AP_connected())
tsungta 7:0ea5460e0de3 100 uart.printf("Connect Success! \n");
tsungta 7:0ea5460e0de3 101 else
tsungta 7:0ea5460e0de3 102 uart.printf("Connect Fail! \n");
tsungta 7:0ea5460e0de3 103
tsungta 7:0ea5460e0de3 104 TCPSocketConnection tcp;
tsungta 7:0ea5460e0de3 105 tcp.set_blocking(false, 1500);
tsungta 7:0ea5460e0de3 106 tcp.connect(TCP_SERVER_ADDRESS, TCP_SERVER_PORT);
tsungta 7:0ea5460e0de3 107
tsungta 7:0ea5460e0de3 108 char out_buffer[] = "Hello World";
tsungta 7:0ea5460e0de3 109
tsungta 0:b7415ae44dac 110 while(1) {
sog_yang 5:6a1155885fc9 111
sog_yang 5:6a1155885fc9 112 uart.printf("Add: %p \r\n", device.read());
sog_yang 6:bce37a45b9cb 113 //uart.printf("%c \r\n", device.read());
sog_yang 5:6a1155885fc9 114
sog_yang 5:6a1155885fc9 115 while (!device.readable()) {
sog_yang 5:6a1155885fc9 116 __WFE();
sog_yang 5:6a1155885fc9 117 }
tsungta 7:0ea5460e0de3 118 hexview((const char *)0x20003384, 224);
sog_yang 5:6a1155885fc9 119 //hexview((const char *)ptr, 224);
sog_yang 5:6a1155885fc9 120 //uart.printf("%c\r\n",m_rx_buf[3]);
sog_yang 5:6a1155885fc9 121
tsungta 7:0ea5460e0de3 122 tcp.send(out_buffer, strlen(out_buffer));
tsungta 7:0ea5460e0de3 123
sog_yang 5:6a1155885fc9 124 myled = !myled;
sog_yang 5:6a1155885fc9 125 wait_ms(200);
tsungta 0:b7415ae44dac 126 }
tsungta 0:b7415ae44dac 127 }