编辑代码

#include <stdio.h>
#include <math.h>

#define M                       0.0289644       // 空气分子的平均摩尔质量
#define GRAVITY                 9.80665         // 定义重力加速度
#define GAS_CONSTANT            8.31447         // 气体常数 [气体常数是一个物质的特性常量, 它不随着环境条件的改变而改变]
#define STANDARD_PRESSURE       101325.0        // 定义海平面标准大气压
#define STANDARD_TEMPERATURE    288.15          // 定义海平面标准温度


// 计算校正后的气压值
float pressure_compensate(float pressure, float temperature, float altitude)
{
    float T = temperature + 273.15;                             // 转换为绝对温度
    float Pc = pressure * exp(M * GRAVITY * altitude / (GAS_CONSTANT * T));      // 校正后的气压值
    return Pc;
}

//msgID:655, press=95788, temp= 2319
int main(void)
{
    float pressure = 95788;
    float temperature = 23.19;

    float altitude = altitude_calculate(pressure);

    float p = pressure_compensate(pressure, temperature, altitude);

    printf("pressure:%.1f, altitude1:%.2f, temperature:%.2f, Pc:%.2f\r\n", pressure, altitude, temperature, p);
    return 0;
}