标题: stm32 BMP180气压计驱动程序 [打印本页]

作者: HLeo    时间: 2018-11-16 22:01
标题: stm32 BMP180气压计驱动程序
stm32 BMP180气压计 oled显示

单片机源程序如下:

  1. //  功能描述   : OLED 4接口演示例程(51系列)
  2. //              说明:
  3. //              ----------------------------------------------------------------
  4. //              GND    电源地
  5. //              VCC  接5V或3.3v电源
  6. //              D0   接PB12(SCL)
  7. //              D1   接PB13(SDA)
  8. //              RES  接PC15
  9. //              DC   接PC14
  10. //              CS   接地               
  11. //              ----------------------------------------------------------------


  12. #include "delay.h"
  13. #include "sys.h"
  14. #include "oled.h"
  15. #include "bmp.h"
  16. #include "myiic.h"
  17. #include "usart.h"

  18. extern short AC1;
  19. extern short AC2;
  20. extern short AC3;
  21. extern unsigned short AC4;
  22. extern unsigned short AC5;
  23. extern unsigned short AC6;
  24. extern short B1;
  25. extern short B2;
  26. extern short MB;
  27. extern short MC;
  28. extern short MD;

  29. int main(void)
  30. {        
  31.           u8 BMP180_ID=0;
  32.           long UT,UP;
  33.                 delay_init();                     //延时函数初始化         
  34.                 NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级         LED_Init();                             //LED端口初始化
  35.                 OLED_Init();                        //初始化OLED  
  36.                 OLED_Clear()          ;
  37.                 IIC_Init();      //BMP180初始化
  38.           uart_init(9600);
  39.                
  40.         while(1)
  41.         {        
  42.                 BMP180_ID = BMP180_ReadOneByte(0xd0);//读取ID地址
  43.                 Read_CalibrationData();
  44.                 UT=Get_BMP180UT();
  45.                 UP= Get_BMP180UP();
  46.                 Convert_UncompensatedToTrue(UT,UP);
  47.                 OLED_Clear();
  48.                 OLED_ShowCHinese(20,0,0);//电
  49.                 OLED_ShowCHinese(38,0,1);//子
  50.                 OLED_ShowCHinese(56,0,2);//气
  51.                 OLED_ShowCHinese(74,0,3);//压
  52.                 OLED_ShowCHinese(92,0,4);//计                 
  53.                
  54.                  OLED_ShowCHinese(0,2,5);//温
  55.         OLED_ShowCHinese(20,2,6);//度
  56.                 OLED_ShowChar(40,2,':');
  57.                 OLED_ShowNum(55,2,True_Temp,3,16);
  58.                 OLED_ShowCHinese(90,2,9);//单位
  59.                
  60.                 OLED_ShowCHinese(0,4,7);//气
  61.         OLED_ShowCHinese(20,4,8);//压
  62.                 OLED_ShowChar(40,4,':');
  63.                 OLED_ShowNum(55,4,True_Press/1000,3,16);
  64.     OLED_ShowString(90,4,"kPa");
  65. //               
  66.         OLED_ShowCHinese(0,6,11);//高
  67.         OLED_ShowCHinese(20,6,12);//度
  68.                 OLED_ShowChar(40,6,':');
  69.         OLED_ShowNum(50,6,True_Altitude,3,16);
  70.         OLED_ShowChar(75,6,'m');
  71.                
  72.         //OLED_ShowNum(90,6,BMP180_ID,3,16);//显示ASCII字符的码值         
  73.                         

  74. //                 printf("\n\rAC1 is %d\r",AC1);
  75. //                 printf("\n\rAC2 is %d\r",AC2);
  76. //                 printf("\n\rAC3 is %d\r",AC3);
  77. //                 printf("\n\rAC4 is %d\r",AC4);
  78. //                 printf("\n\rAC5 is %d\r",AC5);
  79. //                 printf("\n\rAC6 is %d\r",AC6);
  80. //                 printf("\n\rc=%d\r",BMP180_ID);
  81. //                 
  82. //                 printf("\n\rTruePressure is %f\r",True_Press);
  83. //                 printf("\n\rTrue_Temp is %f\r",True_Temp);
  84. //                 printf("\n\True_Altitude is %f\r",True_Altitude);
  85. //                 //printf("\n\rc=%d\r",BMP180_ID);
  86.                  
  87.                 delay_ms(1000);

  88.         }         
  89.         
  90. }
复制代码

所有资料51hei提供下载:
bmp180气压计.rar (297.55 KB, 下载次数: 88)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1