A Nucleo program using a CC3000 wifi chip to ping
Dependencies: NVIC_set_all_priorities TextLCD cc3000_hostdriver_mbedsocket mbed
main.cpp@0:2aa37889f076, 2014-07-10 (annotated)
- Committer:
- MarcoAmerena
- Date:
- Thu Jul 10 12:26:06 2014 +0000
- Revision:
- 0:2aa37889f076
NucleoWifi 1.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MarcoAmerena | 0:2aa37889f076 | 1 | #include "mbed.h" |
MarcoAmerena | 0:2aa37889f076 | 2 | #include "TextLCD.h" |
MarcoAmerena | 0:2aa37889f076 | 3 | #include "cc3000.h" |
MarcoAmerena | 0:2aa37889f076 | 4 | #include "main.h" |
MarcoAmerena | 0:2aa37889f076 | 5 | |
MarcoAmerena | 0:2aa37889f076 | 6 | |
MarcoAmerena | 0:2aa37889f076 | 7 | using namespace mbed_cc3000; |
MarcoAmerena | 0:2aa37889f076 | 8 | |
MarcoAmerena | 0:2aa37889f076 | 9 | #if (MY_BOARD == WIFI_SHEILD_ADAFRUIT) |
MarcoAmerena | 0:2aa37889f076 | 10 | cc3000 wifi(PB_3, PB_4, PB_6, SPI(PA_7, PA_6, PA_5), "SSID", "PASSWORD", WPA, false); //irq, en, cs, spi, irq-port |
MarcoAmerena | 0:2aa37889f076 | 11 | Serial pc(USBTX, USBRX); // tx, rx |
MarcoAmerena | 0:2aa37889f076 | 12 | #endif |
MarcoAmerena | 0:2aa37889f076 | 13 | |
MarcoAmerena | 0:2aa37889f076 | 14 | TextLCD lcd(PC_8, PC_6, PC_5, PB_15, PB_14, PB_12); // rs, e, d4-d7 |
MarcoAmerena | 0:2aa37889f076 | 15 | DigitalOut led(PC_10); |
MarcoAmerena | 0:2aa37889f076 | 16 | |
MarcoAmerena | 0:2aa37889f076 | 17 | int main() |
MarcoAmerena | 0:2aa37889f076 | 18 | { |
MarcoAmerena | 0:2aa37889f076 | 19 | lcd.cls(); |
MarcoAmerena | 0:2aa37889f076 | 20 | lcd.printf("CC3000 Ping"); |
MarcoAmerena | 0:2aa37889f076 | 21 | |
MarcoAmerena | 0:2aa37889f076 | 22 | led = 0; |
MarcoAmerena | 0:2aa37889f076 | 23 | wifi.init(); |
MarcoAmerena | 0:2aa37889f076 | 24 | |
MarcoAmerena | 0:2aa37889f076 | 25 | if (wifi.connect(5000) == false) |
MarcoAmerena | 0:2aa37889f076 | 26 | { |
MarcoAmerena | 0:2aa37889f076 | 27 | lcd.locate(0, 0); |
MarcoAmerena | 0:2aa37889f076 | 28 | lcd.printf("Return 1"); |
MarcoAmerena | 0:2aa37889f076 | 29 | } |
MarcoAmerena | 0:2aa37889f076 | 30 | else |
MarcoAmerena | 0:2aa37889f076 | 31 | { |
MarcoAmerena | 0:2aa37889f076 | 32 | lcd.cls(); |
MarcoAmerena | 0:2aa37889f076 | 33 | lcd.locate(0, 0); |
MarcoAmerena | 0:2aa37889f076 | 34 | lcd.printf("IP address:"); |
MarcoAmerena | 0:2aa37889f076 | 35 | lcd.locate(0, 1); |
MarcoAmerena | 0:2aa37889f076 | 36 | lcd.printf("%s",wifi.getIPAddress()); |
MarcoAmerena | 0:2aa37889f076 | 37 | } |
MarcoAmerena | 0:2aa37889f076 | 38 | |
MarcoAmerena | 0:2aa37889f076 | 39 | wait(5); |
MarcoAmerena | 0:2aa37889f076 | 40 | |
MarcoAmerena | 0:2aa37889f076 | 41 | uint32_t ip; |
MarcoAmerena | 0:2aa37889f076 | 42 | uint8_t *site = (uint8_t *)"google.com"; |
MarcoAmerena | 0:2aa37889f076 | 43 | |
MarcoAmerena | 0:2aa37889f076 | 44 | printf("IP of %s ",site); |
MarcoAmerena | 0:2aa37889f076 | 45 | if (wifi._socket.gethostbyname(site,strlen((const char *)site), &ip)) |
MarcoAmerena | 0:2aa37889f076 | 46 | { |
MarcoAmerena | 0:2aa37889f076 | 47 | uint8_t add0 = (ip >> 24); |
MarcoAmerena | 0:2aa37889f076 | 48 | uint8_t add1 = (ip >> 16); |
MarcoAmerena | 0:2aa37889f076 | 49 | uint8_t add2 = (ip >> 8); |
MarcoAmerena | 0:2aa37889f076 | 50 | uint8_t add3 = (ip >> 0); |
MarcoAmerena | 0:2aa37889f076 | 51 | printf("IP address of %s: %d:%d:%d:%d \r\n", site, add0, add1, add2, add3); |
MarcoAmerena | 0:2aa37889f076 | 52 | led = 1; |
MarcoAmerena | 0:2aa37889f076 | 53 | } |
MarcoAmerena | 0:2aa37889f076 | 54 | else |
MarcoAmerena | 0:2aa37889f076 | 55 | { |
MarcoAmerena | 0:2aa37889f076 | 56 | lcd.locate(0, 0); |
MarcoAmerena | 0:2aa37889f076 | 57 | lcd.printf("Return 2"); |
MarcoAmerena | 0:2aa37889f076 | 58 | } |
MarcoAmerena | 0:2aa37889f076 | 59 | wait(3); |
MarcoAmerena | 0:2aa37889f076 | 60 | |
MarcoAmerena | 0:2aa37889f076 | 61 | printf("Starting sending ping. \r\n"); |
MarcoAmerena | 0:2aa37889f076 | 62 | uint32_t reply_count = wifi.ping(ip, 5, 500, 32); |
MarcoAmerena | 0:2aa37889f076 | 63 | lcd.cls(); |
MarcoAmerena | 0:2aa37889f076 | 64 | lcd.locate(0, 0); |
MarcoAmerena | 0:2aa37889f076 | 65 | lcd.printf("Recieved:"); |
MarcoAmerena | 0:2aa37889f076 | 66 | lcd.locate(0, 1); |
MarcoAmerena | 0:2aa37889f076 | 67 | lcd.printf("%d", reply_count); |
MarcoAmerena | 0:2aa37889f076 | 68 | printf("Ping demo completed. \r\n"); |
MarcoAmerena | 0:2aa37889f076 | 69 | wifi.disconnect(); |
MarcoAmerena | 0:2aa37889f076 | 70 | } |