mukuyo hirohashi
/
Rasp_serial
raspberry pi to stm32f303k8 for serial communication
serial/serial.cpp@0:7bc24e8d1591, 2021-05-02 (annotated)
- Committer:
- mukuyo
- Date:
- Sun May 02 15:01:33 2021 +0000
- Revision:
- 0:7bc24e8d1591
update;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mukuyo | 0:7bc24e8d1591 | 1 | #include "serial.h" |
mukuyo | 0:7bc24e8d1591 | 2 | Rasp::Rasp(PinName TX,PinName RX): device(USBTX,USBRX) { |
mukuyo | 0:7bc24e8d1591 | 3 | device.baud(115200);//通信速度最速 |
mukuyo | 0:7bc24e8d1591 | 4 | device.attach(callback(this,&Rasp::dev_rx), RawSerial::RxIrq);//角度割り込み入力 |
mukuyo | 0:7bc24e8d1591 | 5 | u=0; |
mukuyo | 0:7bc24e8d1591 | 6 | ID=0; |
mukuyo | 0:7bc24e8d1591 | 7 | rx_val=0; |
mukuyo | 0:7bc24e8d1591 | 8 | BUFFER_SIZE=6; |
mukuyo | 0:7bc24e8d1591 | 9 | } |
mukuyo | 0:7bc24e8d1591 | 10 | |
mukuyo | 0:7bc24e8d1591 | 11 | void Rasp::dev_rx(){ |
mukuyo | 0:7bc24e8d1591 | 12 | u++; |
mukuyo | 0:7bc24e8d1591 | 13 | buffer[u-1]=device.getc(); |
mukuyo | 0:7bc24e8d1591 | 14 | rx_val=buffer[0]; |
mukuyo | 0:7bc24e8d1591 | 15 | if(buffer[0]!=0xFF)u--; |
mukuyo | 0:7bc24e8d1591 | 16 | if(u==BUFFER_SIZE){ |
mukuyo | 0:7bc24e8d1591 | 17 | if(buffer[0]==0xFF){ |
mukuyo | 0:7bc24e8d1591 | 18 | u=0; |
mukuyo | 0:7bc24e8d1591 | 19 | motor_limit = buffer[1]/100; |
mukuyo | 0:7bc24e8d1591 | 20 | for(int i = 0; i < 4; i++){ |
mukuyo | 0:7bc24e8d1591 | 21 | Motor_pow[i] = buffer[i+2] - 100; |
mukuyo | 0:7bc24e8d1591 | 22 | Motor_pow[i] *= 0.4; |
mukuyo | 0:7bc24e8d1591 | 23 | } |
mukuyo | 0:7bc24e8d1591 | 24 | } |
mukuyo | 0:7bc24e8d1591 | 25 | } |
mukuyo | 0:7bc24e8d1591 | 26 | } |
mukuyo | 0:7bc24e8d1591 | 27 | void Rasp::put(int val){ |
mukuyo | 0:7bc24e8d1591 | 28 | device.putc(val); |
mukuyo | 0:7bc24e8d1591 | 29 | } |
mukuyo | 0:7bc24e8d1591 | 30 | void Rasp::get(float &a, int num){ |
mukuyo | 0:7bc24e8d1591 | 31 | |
mukuyo | 0:7bc24e8d1591 | 32 | a= Motor_pow[num]; |
mukuyo | 0:7bc24e8d1591 | 33 | |
mukuyo | 0:7bc24e8d1591 | 34 | } |