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 部分参考实例实现
来源: http://www.bubuko.com/infodetail-2948112.html