IM920で受信したデータをそのまま返すプログラム

Dependencies:   mbed

Committer:
taquto
Date:
Fri Jul 30 18:09:55 2021 +0000
Revision:
1:ad1d414d86fb
Parent:
0:337a66b6778a
This program enables F303K8's LED to blink when it receives a particular command from IM920.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
falconsyunya 0:337a66b6778a 1 //参考サイト:http://www.maroon.dti.ne.jp/koten-kairo/works/dsPIC/serial6.html
falconsyunya 0:337a66b6778a 2 //mbedシリアル通信参考サイト:https://os.mbed.com/users/okini3939/notebook/Serial_jp/
falconsyunya 0:337a66b6778a 3 //IM920とマイコンだけで通信を行うプログラム。
taquto 1:ad1d414d86fb 4 //'b0'(blast-off(0ff)の頭文字)を受信したとき、LEDが点滅し始める。
falconsyunya 0:337a66b6778a 5
falconsyunya 0:337a66b6778a 6 #include "mbed.h"
taquto 1:ad1d414d86fb 7 DigitalOut myled(LED1);
falconsyunya 0:337a66b6778a 8
falconsyunya 0:337a66b6778a 9 char temp;
taquto 1:ad1d414d86fb 10 char str[10];
taquto 1:ad1d414d86fb 11
taquto 1:ad1d414d86fb 12 int k=0;
falconsyunya 0:337a66b6778a 13 int i=0;
taquto 1:ad1d414d86fb 14 //int n=0;
falconsyunya 0:337a66b6778a 15
falconsyunya 0:337a66b6778a 16 int main()
falconsyunya 0:337a66b6778a 17 {
taquto 1:ad1d414d86fb 18 Serial pc(USBTX, USBRX,38400);//ボーレートを落とすと,USB側からのデータが正確に出力されない.
falconsyunya 0:337a66b6778a 19 Serial im920(PA_9,PA_10,19200);//TX(IM920_RX), RX(IM920_TX)
falconsyunya 0:337a66b6778a 20
taquto 1:ad1d414d86fb 21 myled = 0;
taquto 1:ad1d414d86fb 22
falconsyunya 0:337a66b6778a 23 while(1) {
taquto 1:ad1d414d86fb 24 //pc.printf("%d\n\r",k);
taquto 1:ad1d414d86fb 25
taquto 1:ad1d414d86fb 26 if(im920.readable()) { //IM920からのデータがある場合
falconsyunya 0:337a66b6778a 27 temp = im920.getc();//一文字読み込む
taquto 1:ad1d414d86fb 28 if(temp != '\r') { //読み込み文字が改行で無い場合
falconsyunya 0:337a66b6778a 29 str[i] = temp;
falconsyunya 0:337a66b6778a 30 i++;
taquto 1:ad1d414d86fb 31 } else if(temp == '\r') { //読み込み文字が改行の場合
taquto 1:ad1d414d86fb 32 if(str[i-2] == 'B') {
taquto 1:ad1d414d86fb 33 if(str[i-1] == '0') {
taquto 1:ad1d414d86fb 34 k = 1;
taquto 1:ad1d414d86fb 35 }
taquto 1:ad1d414d86fb 36 }
falconsyunya 0:337a66b6778a 37 }
taquto 1:ad1d414d86fb 38 }
taquto 1:ad1d414d86fb 39
taquto 1:ad1d414d86fb 40 if(k == 1) {
taquto 1:ad1d414d86fb 41 myled = 1;
taquto 1:ad1d414d86fb 42 wait(0.2);
taquto 1:ad1d414d86fb 43 myled = 0;
taquto 1:ad1d414d86fb 44 wait(1.0);
falconsyunya 0:337a66b6778a 45 }
falconsyunya 0:337a66b6778a 46 }
falconsyunya 0:337a66b6778a 47 }