Gy_39 demo

Dependencies:   mbed

main.cpp

Committer:
rozendhyan
Date:
2017-08-24
Revision:
0:c105fad1f12b

File content as of revision 0:c105fad1f12b:

#include "mbed.h"
#define size 14
Serial pc(USBTX,USBRX);
Serial sensor(PA_9,PA_10);
int commend[3] = {0xA5,0x52,0xF7 };
char buf[size];
int Lux,Temp,Preesure,Hum,Height;
void judgement_data(char buf[]){
    int i=0;
    if(buf[i++]== 0x5A){
        //pc.printf("first_step\n");
        if(buf[i++]== 0x5A){
            //pc.printf("second_step\n");
           //i++;//go to data type
            if(buf[i] == 0x15){
                pc.printf("Lux type\n");
                i++;//04
                Lux = ((buf[i+1]<<24) | (buf[i+2]<<16) | (buf[i+3]<<8) | buf[i+4])/100;
                //Lux = (0x00<<24) | (0x00<<16) | (0xFE<<8) | 0x40;//test
                pc.printf("Lux = %d\n", Lux);
            }else if(buf[i] == 0x45){
                pc.printf("temp type\n");
                i++;//0A
                Temp = ((buf[i+1]<<8)|(buf[i+2]))/100;
                Preesure = ((buf[i+3]<<24)|(buf[i+4]<<16)|(buf[i+5]<<8)|(buf[i+6]))/100;
                Hum = ((buf[i+7]<<8)|(buf[i+8]))/100;
                Height = ((buf[i+9]<<8)|(buf[i+10]));
                pc.printf("Temp = %d\n", Temp);
                pc.printf("Preesure = %d\n", Preesure);
                pc.printf("Hum = %d\n", Hum);
                pc.printf("Height = %d\n", Height);
            }
        }
    }
}

int main(){
    pc.baud(9600);
    //pc.printf("testing use serial port\n");
    while(1){
        for(int i=0;i<3;i++){
            pc.putc(commend[i]);
            sensor.putc(commend[i]);
        }
         
        for(int i=0;i<size;i++){
            buf[i] = sensor.getc();  
            pc.putc(buf[i]);
        }
        pc.printf("\n");//enter
        judgement_data(buf);
        wait(3);
    }
}