Sound 发表于 2021-3-3 16:40:00

扩展库使用说明——BMP280

本帖最后由 陈哲东 于 2021-7-1 15:22 编辑

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

http://www.haohaodada.com/video/new/data/BMP280.mp4

1-硬件概述






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


2-引脚定义




3-电路原理图
4-硬件连接




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



2.BMP280读取气压



3.BMP280读取温度



6-范例代码


#define NIXIETUBE_PORT P6
#define NIXIETUBE_PORT_MODE {P6M1=0x00;P6M0=0xff;}//推挽输出
#define NIXIETUBE_LEFT_COLON_PIN P0_7//左侧数码管冒号
#define NIXIETUBE_LEFT_COLON_PIN_MODE {P0M1&=~0x80;P0M0|=0x80;}//推挽输出
#define NIXIETUBE_RIGHT_COLON_PIN P2_1//右侧数码管冒号
#define NIXIETUBE_RIGHT_COLON_PIN_MODE {P2M1&=~0x02;P2M0|=0x02;}//推挽输出
#define SOFTIIC_SCL P1_5
#define SOFTIIC_SCL_OUT {P1M1|=0x20;P1M0|=0x20;}//P1_5开漏输出
#define SOFTIIC_SDA P1_4
#define SOFTIIC_SDA_IN {P1M1|=0x10;P1M0&=~0x10;}//P1_4高阻输入
#define SOFTIIC_SDA_OUT {P1M1|=0x10;P1M0|=0x10;}//P1_4开漏输出

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

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

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

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

void loop()
{
nix_display_clear();//数码管清屏
nix_display_num((bmp280_read_pressure()));//数码管显示整数
delay(1000);
}

void main(void)
{
setup();
while(1){
    loop();
}
}







JingMo 发表于 2023-6-30 19:22:12

BMP280在STC8H上使用硬件SPI有例子吗
页: [1]
查看完整版本: 扩展库使用说明——BMP280