![](/media/cache/group/mebd_thumbnail.jpg.50x50_q85.jpg)
IM920で受信したデータをそのまま返すプログラム
Dependencies: mbed
main.cpp@1:ad1d414d86fb, 2021-07-30 (annotated)
- 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?
User | Revision | Line number | New 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 | } |