
send RS485 for testing Delta Sevro
Fork of RS4851121R by
main.cpp@4:ee9afe2292fd, 2018-04-13 (annotated)
- Committer:
- WeberYang
- Date:
- Fri Apr 13 09:26:05 2018 +0000
- Revision:
- 4:ee9afe2292fd
- Parent:
- 2:bbb217e1219e
let rx data buffer into global
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YusukeWakuta | 0:c963f91bdd23 | 1 | //相互通信確認用 |
YusukeWakuta | 0:c963f91bdd23 | 2 | #include "mbed.h" |
YusukeWakuta | 0:c963f91bdd23 | 3 | #define BUFFER 30 |
YusukeWakuta | 0:c963f91bdd23 | 4 | |
WeberYang | 2:bbb217e1219e | 5 | Serial rs485(PA_9,PA_10);//,115200);//(p9,p10); |
YusukeWakuta | 0:c963f91bdd23 | 6 | Serial pc(USBTX,USBRX); |
WeberYang | 2:bbb217e1219e | 7 | DigitalOut Receiver(D7);//(p5); |
WeberYang | 2:bbb217e1219e | 8 | #define LENG 31 //0x42 + 31 bytes equal to 32 bytes |
WeberYang | 4:ee9afe2292fd | 9 | char buf[LENG]; |
WeberYang | 2:bbb217e1219e | 10 | //attributes - program variables |
WeberYang | 2:bbb217e1219e | 11 | char stringOverSerialBuffer[41]; // buffer to store received string over pc |
WeberYang | 2:bbb217e1219e | 12 | int newCommandFlag = 0; // flag for ISR |
WeberYang | 4:ee9afe2292fd | 13 | int i; |
WeberYang | 2:bbb217e1219e | 14 | char data[BUFFER]; |
YusukeWakuta | 0:c963f91bdd23 | 15 | int num1,num2; |
WeberYang | 2:bbb217e1219e | 16 | int idx; |
WeberYang | 4:ee9afe2292fd | 17 | int len = 0; |
WeberYang | 2:bbb217e1219e | 18 | bool flagrec = false; |
WeberYang | 2:bbb217e1219e | 19 | void pc_rx(){ |
WeberYang | 4:ee9afe2292fd | 20 | //pc.putc(rs485.getc()); |
WeberYang | 2:bbb217e1219e | 21 | |
WeberYang | 2:bbb217e1219e | 22 | Receiver = 0; |
WeberYang | 4:ee9afe2292fd | 23 | for(idx= 0; rs485.readable(); idx++){ |
WeberYang | 4:ee9afe2292fd | 24 | data[idx]= rs485.getc(); |
WeberYang | 4:ee9afe2292fd | 25 | buf[len] = data[idx]; |
WeberYang | 4:ee9afe2292fd | 26 | len++; |
WeberYang | 4:ee9afe2292fd | 27 | } |
WeberYang | 4:ee9afe2292fd | 28 | if (len>8) flagrec = true; |
WeberYang | 2:bbb217e1219e | 29 | |
taurin | 1:41cb97261876 | 30 | } |
taurin | 1:41cb97261876 | 31 | |
YusukeWakuta | 0:c963f91bdd23 | 32 | int main() |
YusukeWakuta | 0:c963f91bdd23 | 33 | { |
WeberYang | 2:bbb217e1219e | 34 | rs485.baud(115200); |
WeberYang | 2:bbb217e1219e | 35 | pc.baud(115200); |
taurin | 1:41cb97261876 | 36 | Receiver=0; |
WeberYang | 2:bbb217e1219e | 37 | rs485.attach(pc_rx, Serial::RxIrq); |
WeberYang | 4:ee9afe2292fd | 38 | while(1){ |
WeberYang | 2:bbb217e1219e | 39 | wait_ms(10); |
WeberYang | 4:ee9afe2292fd | 40 | if (flagrec){ |
WeberYang | 2:bbb217e1219e | 41 | flagrec = false; |
WeberYang | 4:ee9afe2292fd | 42 | |
WeberYang | 4:ee9afe2292fd | 43 | for(i= 0; i<len; i++){ |
WeberYang | 4:ee9afe2292fd | 44 | pc.putc(buf[i]); |
WeberYang | 2:bbb217e1219e | 45 | } |
WeberYang | 4:ee9afe2292fd | 46 | len = 0; |
WeberYang | 2:bbb217e1219e | 47 | } |
WeberYang | 4:ee9afe2292fd | 48 | } |
YusukeWakuta | 0:c963f91bdd23 | 49 | } |