将多个8位数据合并为一个u32数据

将多个8位数据合并为一个u32数据

#include 
//将多个8位数据合并为一个u32数据
//多用于温度湿度等传感器数据读取处理
struct return_dat{
    unsigned char v[5];
    unsigned int c; //湿度
    unsigned int t  //温度
};


int main(int *arg)
{
    struct return_dat aht20;
    aht20.v[0]=0xfc;
    aht20.v[1]=0xfa;
    aht20.v[2]=0xfc;
    aht20.v[3]=0xfe;
    aht20.v[4]=0xfd;
    aht20.c=((unsigned int)aht20.v[0]<<12)+((unsigned int)aht20.v[1]<<4)+(aht20.v[2]>>4);
    aht20.t= ((unsigned int)(aht20.v[2]&0x0f)<<16)+((unsigned int)aht20.v[3]<<8)+aht20.v[4];
    printf("c=0x%x\n\rt=0x%x\n\r",aht20.c,aht20.t);
}

你可能感兴趣的:(嵌入式软件,单片机,c语言,stm32)