XBeeの動作確認プログラム

Dependencies:   mbed

Committer:
igarashi50
Date:
Mon Jun 25 09:44:19 2018 +0000
Revision:
2:3bda32202d89
Parent:
1:93fb9c524902
send connected message

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ShuheiK 0:8db1774e489b 1 /**
ShuheiK 0:8db1774e489b 2 * @file main.cpp
ShuheiK 0:8db1774e489b 3 * @brief 新入生教育用Xbee送受信プログラム
ShuheiK 0:8db1774e489b 4 *
ShuheiK 0:8db1774e489b 5 * <table><tr><th> 送信(PC->mbed) </th><th> 受信(mbed->PC) </th></tr>
ShuheiK 0:8db1774e489b 6 * <tr><th> 's' or 'S' </th><th> "Mission Start" </th></tr>
ShuheiK 1:93fb9c524902 7 * <tr><th> 't' or 'T' </th><th> 任意の文字列 (注1)</th></tr>
ShuheiK 0:8db1774e489b 8 * <tr><th> 'c' or 'C' </th><th> "Mission complete" </th></tr>
ShuheiK 0:8db1774e489b 9 * </table>
ShuheiK 0:8db1774e489b 10 *
ShuheiK 1:93fb9c524902 11 * (注1) 't' または 'T' を入力した後,任意の文字列を入力しエンターキーを押すと,その文字列がmbedからPCに送信される.
ShuheiK 0:8db1774e489b 12 *
ShuheiK 0:8db1774e489b 13 * @author Shuhei Kayawari
ShuheiK 0:8db1774e489b 14 * @date 2018/06/13
ShuheiK 0:8db1774e489b 15 */
ShuheiK 0:8db1774e489b 16
ShuheiK 0:8db1774e489b 17 #include "mbed.h"
ShuheiK 0:8db1774e489b 18
ShuheiK 0:8db1774e489b 19 Serial pc(USBTX, USBRX);
ShuheiK 0:8db1774e489b 20 Serial xbee(p9, p10);
ShuheiK 0:8db1774e489b 21
ShuheiK 0:8db1774e489b 22 int main()
ShuheiK 0:8db1774e489b 23 {
ShuheiK 0:8db1774e489b 24 pc.printf("XBee Start\r\n");
igarashi50 2:3bda32202d89 25 xbee.printf("XBee Connected\r\n");
ShuheiK 0:8db1774e489b 26
ShuheiK 0:8db1774e489b 27 while(1) {
ShuheiK 0:8db1774e489b 28 pc.printf("Waiting for data...\r\n");
ShuheiK 0:8db1774e489b 29
ShuheiK 0:8db1774e489b 30 int received_data = xbee.getc();
ShuheiK 0:8db1774e489b 31
ShuheiK 0:8db1774e489b 32 pc.printf("Received Data: %c\r\n", received_data);
ShuheiK 0:8db1774e489b 33
ShuheiK 0:8db1774e489b 34 if(received_data == 83 || received_data == 115) { //S or s
ShuheiK 0:8db1774e489b 35 xbee.printf("%c\r\n", received_data);
ShuheiK 0:8db1774e489b 36 xbee.printf("Mission Start\r\n");
ShuheiK 0:8db1774e489b 37 } else if(received_data == 84 || received_data == 116) { //T or t
ShuheiK 0:8db1774e489b 38 xbee.printf("%c\r\n", received_data);
ShuheiK 0:8db1774e489b 39
ShuheiK 0:8db1774e489b 40 char str[1024] = {};
ShuheiK 0:8db1774e489b 41 int i = 0;
ShuheiK 0:8db1774e489b 42
ShuheiK 0:8db1774e489b 43 do
ShuheiK 0:8db1774e489b 44 str[i++] = xbee.getc();
ShuheiK 0:8db1774e489b 45 while(str[i-1] != 0x0d);
ShuheiK 0:8db1774e489b 46
ShuheiK 0:8db1774e489b 47 xbee.printf("%s\r\n", str);
ShuheiK 0:8db1774e489b 48 }
ShuheiK 0:8db1774e489b 49 else if(received_data == 67 || received_data == 99) { //C or c
ShuheiK 0:8db1774e489b 50 xbee.printf("%c\r\n", received_data);
ShuheiK 0:8db1774e489b 51 xbee.printf("Mission Complete\r\n");
ShuheiK 0:8db1774e489b 52 }
ShuheiK 0:8db1774e489b 53 }
ShuheiK 0:8db1774e489b 54
ShuheiK 0:8db1774e489b 55 return 0;
ShuheiK 0:8db1774e489b 56 }