BMP280 driver对接单片机I2C或者SPI总线接口
Posted braveheart007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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部分参考实例实现
以上是关于BMP280 driver对接单片机I2C或者SPI总线接口的主要内容,如果未能解决你的问题,请参考以下文章