nucleo_ver. / Mbed 2 deprecated nucleo_sample_Xbee_send-and-receive

Dependencies:   mbed

Committer:
saeichi
Date:
Sun Apr 26 08:14:19 2020 +0000
Revision:
0:534ef231f03a
nucleo_sample_Xbee_send-and-receive

Who changed what in which revision?

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