CHEN BING-YANG
/
VL53L0X_test
test
Diff: main.cpp
- Revision:
- 0:4beb82efd0cf
- Child:
- 1:44d613ff2e6c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Oct 18 13:19:25 2017 +0000 @@ -0,0 +1,64 @@ +#include "mbed.h" +#include "SoftSerial.h" +Serial pc(SERIAL_TX, SERIAL_RX); +Serial mySerial(PC_10,PC_11); + +int main() +{ +unsigned char re_Buf[11], counter = 0; +unsigned char sign = 0; +int data_Buf[3] = {0}; +uint16_t distance = 0; +unsigned char i = 0, sum = 0; +int sum1=0; +int j=0; +int writes[3]={0xA5,0x53,0xF8}; +mySerial.baud(9600); + while(1) + { + if(mySerial.writeable()) + { mySerial.putc(0xA5); + mySerial.putc(0x52); + mySerial.putc(0xF7); + + break; + + + } + wait(0.01); + + } + while(1){ + i = 0, sum = 0; + distance =0; + while (mySerial.readable()) + { + re_Buf[counter] = (unsigned char)mySerial.getc(); + if (counter == 0 && re_Buf[0] != 0x5A) return; + counter++; + if (counter == 8) // Enough Data available? + { + counter = 0; // Get Ready for the next stream + sign = 1; + break; + } + } + if (sign) + { + sign = 0; + for (i = 0; i < 7; i++) + sum += re_Buf[i]; + if (sum == re_Buf[i] ) // Check Header + { + data_Buf[0] = re_Buf[4]; + data_Buf[1] = re_Buf[5]; + data_Buf[2] = re_Buf[6]; + distance = data_Buf[0] << 8 | data_Buf[1]; + sum1+=distance; + j++; + if(j==2) + {pc.printf("distance: %dmm\n",201-sum1/2);j=0;sum1=0;} + } + } + } +} \ No newline at end of file