基于stm32单片机BMP180气压计海拔高度温度测量Proteus仿真

资料编号:149   下面是相关功能视频演示:

149-基于stm32单片机BMP180气压计海拔高度温度测量Proteus仿真(源码+仿真+全套资料)

本设计:
基于STM32的BMP180气压传感器(仿真+程序)
Proteus仿真版本:proteus 8.9
程序编译器:keil 5
编程语言:C语言

设计说明:
通过STM32读取BMP180输出的数据通过串口及LCD显示屏,将高度,温度大气压强信息显示出来。

 下面是该程序部分展示:

int main(void)
{
    char str[80];
    extern long   result_UT;
    extern long  result_UP;    
    u32 result_UPP,temp;
    float altitude;      
  HAL_Init();        
  /* 配置系统时钟为72 MHz */ 
  SystemClock_Config();

  /*初始化USART 配置模式为 115200 8-N-1,中断接收*/
  DEBUG_USART_Config();
  
    printf("\r\n 这是一个EEPROM 读写小数和长整数实验 \r\n");
//LCD1602_GPIO_Config();   //开启GPIO口
  HAL_Delay(10);  //延时一段时间    
  /* I2C 外设初(AT24C02)始化 */
  i2c_CfgGpio();
    Init_BMP180();        //初始化bmp180    
    LCD_init();
    HAL_Delay(10);          
  while (1)
  {  
      
  /*读取数据标志位*/
    bmp180Convert();//添加报警 气压过低时候 高原地区气压低于600mmhg,而1mmhg=133.3p。所以为80000p
        altitude=44330.0*(1-pow((float)result_UP/101325,1/5.255));            //计算高度
//        OLED_ShowNum(77,32,altitude,4,12);  
    result_UPP=result_UP/100;
        printf("大气压强 %d.%d 帕\r\n",result_UPP,result_UP%100);
    result_UPP=altitude;
    printf(" 高度%d m\r\n",result_UPP);
    sprintf(str, "%dM %d.%dPa",result_UPP ,result_UP/100,result_UP%100);
    LCD_write_string(1, 0, (char *)str);
//        OLED_ShowNum(77,52,(u8)(result_UT*0.1),4,12);     //显示温度整数部分 因为测量值例如为245没有小数点.....                                         //可以加一个判断 报警
        temp=result_UT;                         //计算小数部分
    printf("温度  %d.%d 摄氏度\r\n",temp/10,temp%10);
    sprintf(str, " %d.%d C",temp/10 ,temp%10);
    LCD_write_string(1, 1, (char *)str);
    HAL_Delay(1000);

      
  }
}

下面是该资料的分享下载链接:

https://pan.baidu.com/s/11PU1GXJmi9wNtdiFQG0iwQ?pwd=g1aa 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值