查看: 1155|回复: 1

扩展库使用说明——BMP280

[复制链接]

22

主题

22

帖子

106

积分

注册会员

Rank: 2

积分
106
发表于 2021-3-3 16:40:00 | 显示全部楼层 |阅读模式
本帖最后由 陈哲东 于 2021-7-1 15:22 编辑

BMP280气压传感器模块详解学习视频



1-硬件概述



C]%3PR41}45U`W(R3IJELZU.png


BMP280是一款专为移动应用而设计的绝对气压传感器。该传感器模块位于一个极为紧凑的8针金属盖LGA封装中,占地面积仅为2.0 x 2.5 mm2,封装高度为0.95 mm。它的小尺寸和2.7 μA @1Hz的低功耗允许在电池驱动的设备中实现,如移动电话,GPS模块或手表。


2-引脚定义


{{@R}67))T}JABVZ24FP3UG.png

3-电路原理图
4-硬件连接
7C4F0F40-D6BE-4cb5-A12F-C1474902CCCC.png



5-图形化模块
1.BMP280引脚初始化

(%DXLPE)1D1[_I(3A(L]ZY9.png

2.BMP280读取气压

59}ZDLZ2}1V3KDOY4FW}B.png

3.BMP280读取温度

PIVN2HN{40)4G_A~_))64.png

6-范例代码

}QH%1(C0~)[M9@MRSN%_YTH.png
  1. #define NIXIETUBE_PORT P6
  2. #define NIXIETUBE_PORT_MODE {P6M1=0x00;P6M0=0xff;}//推挽输出
  3. #define NIXIETUBE_LEFT_COLON_PIN P0_7//左侧数码管冒号
  4. #define NIXIETUBE_LEFT_COLON_PIN_MODE {P0M1&=~0x80;P0M0|=0x80;}//推挽输出
  5. #define NIXIETUBE_RIGHT_COLON_PIN P2_1//右侧数码管冒号
  6. #define NIXIETUBE_RIGHT_COLON_PIN_MODE {P2M1&=~0x02;P2M0|=0x02;}//推挽输出
  7. #define SOFTIIC_SCL P1_5
  8. #define SOFTIIC_SCL_OUT {P1M1|=0x20;P1M0|=0x20;}//P1_5开漏输出
  9. #define SOFTIIC_SDA P1_4
  10. #define SOFTIIC_SDA_IN {P1M1|=0x10;P1M0&=~0x10;}//P1_4高阻输入
  11. #define SOFTIIC_SDA_OUT {P1M1|=0x10;P1M0|=0x10;}//P1_4开漏输出

  12. #include <STC8HX.h>
  13. uint32 sys_clk = 24000000;//设置PWM、定时器、串口、EEPROM频率参数
  14. #include "lib/twen_board.h"
  15. #include "lib/led8.h"
  16. #include "lib/nixietube.h"
  17. #include "mylib/bmp280.h"
  18. #include "lib/delay.h"

  19. void Timer0Init(void)        //1000微秒@24.000MHz
  20. {
  21.   AUXR &= 0x7f;                //定时器时钟12T模式
  22.   TMOD &= 0xf0;                //设置定时器模式
  23.   TL0 = 0x30;                        //设定定时初值
  24.   TH0 = 0xf8;                        //设定定时初值
  25. }

  26. void T_IRQ0(void) interrupt 1 using 1{
  27.   nix_scan_callback();//数码管扫描回调函数
  28. }

  29. void setup()
  30. {
  31.   twen_board_init();//天问51初始化
  32.   led8_disable();//关闭8个LED流水灯电源
  33.   nix_init();//数码管初始化
  34.   bmp280_init();//bmp280初始化
  35.   Timer0Init();
  36.   EA = 1; // 控制总中断
  37.   ET0 = 1; // 控制定时器中断
  38.   TR0 = 1;// 定时器0开始计时
  39. }

  40. void loop()
  41. {
  42.   nix_display_clear();//数码管清屏
  43.   nix_display_num((bmp280_read_pressure()));//数码管显示整数
  44.   delay(1000);
  45. }

  46. void main(void)
  47. {
  48.   setup();
  49.   while(1){
  50.     loop();
  51.   }
  52. }
复制代码







回复

使用道具 举报

0

主题

1

帖子

6

积分

注册会员

Rank: 2

积分
6
发表于 2023-6-30 19:22:12 | 显示全部楼层
BMP280在STC8H上使用硬件SPI有例子吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-4-20 14:38 , Processed in 0.373763 second(s), 29 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表