BMP280 driver对接单片机I2C或者SPI总线接口

1:登录github网站搜BMP280,找到 BoschSensortec/BMP280_driver

2:gitclone或者download zip都可以,把驱动下载到本地,记得fork哦!

3:阅读驱动的readme文件

4:readme前面分别是目录、概要、和版本介绍,略过

5:我们关注的焦点也是重点是:传感器初始化即:Initializing the sensor,以I2C为例讲解如下:

  咱们按照要求先定义一个结构体 struct bmp280_dev bmp;

  这个结构体最重要的是实现其内部成员变量的函数实现,如bmp.read=user_i2c_read;这句代码就要求我们用我们所选用的硬件CPU对应的API实现,这个user_i2c_read是个伪代码,我们必须给替换掉!

  那么如果用CPU对应的API实现bmp.read=user_i2c_read;bmp.write=user_i2c_write;bmp.delay_ms = user_delay_ms;呢?

  第一步先把bmp280的驱动文件按照CPU的编程架构放到对应的文件夹中(关于驱动文件放置的位置还是很值得研究的,最好对makefile做个了解,然后再操作,一般8266我就直接放到user_main.c所在的文件夹了);

  第二步把需要初始化的结构体代码拷贝到main.c(当然也有可能是其他的名字,总之是主C文件就可以了)里面,然后找到struct bmp280_dev bmp,找出bmp280_dev的定义代码,如果你用IAR的话就直接go to definition就可以找到了。你会发现bmp.read=user_i2c_read;bmp.write=user_i2c_write;bmp.delay_ms = user_delay_ms;要求实现的函数的形式,我们必须按照定义的形式实现函数。

6:下面的工作就是sensor configuration:

  先声明结构体变量 struct bmp280_config bmp;

  然后在确定设置参数之前首先读传感器的默认设置,然后再根据我们自己的要求写入设置参数

7:readout部分参考实例实现

猜你喜欢

转载自www.cnblogs.com/braveheart007/p/10357141.html