LCD16x2,gy25,using Serial.getc()
Dependencies: MPU6050 TextLCD mbed
Diff: main.cpp
- Revision:
- 0:88e974ab5621
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu May 25 08:48:51 2017 +0000 @@ -0,0 +1,40 @@ +#include "mbed.h" +#include "TextLCD.h" + +TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); // RS, E, D4-D7 +Serial gy25(PA_9, PA_10, 115200); +DigitalOut rw(PA_8); // RW + +int g[3]; +char rxC[8]; + +void rxIRQ(){ + rxC[0] = gy25.getc(); + if (rxC[0] == 170) { + for (int i = 1; i < 8; i++) { + rxC[i] = gy25.getc(); + } + if (rxC[7] == 85) { + for (int i = 0, j =1; i < 3; i++, j+=2) { + g[i] = (rxC[j]<<8 | rxC[j+1])/100; + if (g[i] > 475) + g[i] = g[i] - 476 + 180; + } + } + } +} + +int main() +{ + gy25.format(8,SerialBase::None,1); + lcd.cls(); + lcd.printf("LCD work"); + wait(1); + gy25.attach(rxIRQ, RawSerial::RxIrq); + while(1) { + lcd.locate(0,1); + lcd.printf("%d,%d,%d",g[0],g[1],g[2]); + wait(0.4); + lcd.cls(); + } +} \ No newline at end of file