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总线接口的更多相关文章

  1. 关于I2C和SPI总线协议【转】

    关于I2C和SPI总线协议 IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral ...

  2. I2C和SPI总线对比【转】

    转自:http://blog.csdn.net/skyflying2012/article/details/8237881/ 最近2周一直在调试IIC和SPI总线设备,这里记录一下2种总线,以备后忘. ...

  3. I2C和SPI总线对比

    1 iic总线不是全双工,2根线SCL SDA.spi总线实现全双工,4根线SCK CS MOSI MISO 2 iic总线是多主机总线,通过SDA上的地址信息来锁定从设备.spi总线只有一个主设备, ...

  4. MSP430单片机的两种SPI总线实现方式

    MSP430单片机上的SPI总线的实现方式分为两种:硬件实现和软件实现. 二者的抽象层次不同,硬件实现方式下程序员只需要完成总线协议的寄存器层,即一字节(char,8位二进制)数据,而软件实现方式下程 ...

  5. 【转载】SPI总线和I2C总线的异同点

    来源:https://blog.csdn.net/lishun1422840684/article/details/77776763 总结的简单.明了.适用! 一:SPI接口的全称是"Ser ...

  6. SPI总线(同步)

    一.SPI总线简介 串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口.SPI 用 于CPU与各种外围器件进行全双工. ...

  7. SPI总线的特点、工作方式及常见错误解答

    1.SPI总线简介 SPI(serial peripheral interface,串行外围设备接口)总线技术是Motorola公司推出的一种同步串行接口.它用于CPU与各种外围器件进行全双工.同步串 ...

  8. 理解一下单片机的I2C和SPI通信

    应某位网友要求,今天说一下单片机的I2C SPI通信,可能说不清楚,因为这毕竟要做实验才可完全理解. I2C和SPI是两种不同的通信协议. 听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已, ...

  9. 51单片机I2C总线

    I2C总线是飞利浦公司推出的一种串行总线,所有器件共用两根信号线,实现数据的传输. 总线接口接了上拉电阻,默认为高电平,所以就可以用"当低电平出现"来标记出一种起始信号.我个人把它 ...

随机推荐

  1. Matlab adaptive quadrature

    % script to perform adaptive quadrature clear all, close all global pts % function to be integrated ...

  2. php中一个字符占用几个字节?

    先看看字符与字节有什么区别: (一)“字节”的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位. (二)“字符”的定义 字符是指计算机中使用的文字 ...

  3. 自定义基于jquery竖向瀑布流插件

    公司新项目做了一个关于图片的板块,网上找了一些瀑布流插件都不是很适合自己,于是就自己造轮子写一个,并封装成插件github 于是就想分享一下,主要是为了更好的学习与记忆. 如果大家进来了,希望能给我g ...

  4. 【工具相关】ionic-通过nmp安装最新版本的 cordova 和 ionic

    一,命令行下输入: sudo npm install -g cordova ionic 用来安装最新版本的cordova和ionic. 如下图所示: 二,等待一下,如下图所示. 三,用命令 npm u ...

  5. 谈谈web上各种图片应用的优缺点

    web中承载信息的主要方式就是图片与文字了,以下就是对一些web图片格式的优缺点进行归纳. 1.GIF GIF图是比较古老的web图片格式之一,可以追溯到1987,几乎所有的浏览器都支持这一种格式,老 ...

  6. JMeter Sampler之BeanShellSampler的使用

    Sampler之BeanShellSampler的使用 by:授客 QQ:1033553122 欢迎加入软件性能测试交流群:7156436 1.  Bean Shell简介 ·         Bea ...

  7. vs下开发windows服务程序

    一. VS2012下开发Windows服务 1. 打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图: 2. 创建好后,编译器会自动创建一些文件 ...

  8. 查看python版本

    1.未进入python shell python --version 2.进入python shell,有两种方法 (1) help() (2) import sys sys.version

  9. HashTree【转】

    http://blog.csdn.net/yang_yulei/article/details/46337405 在各种数据结构(线性表.树等)中,记录在结构中的相对位置是随机的.因此在机构中查找记录 ...

  10. 如何创建一个 mongo 数据库并为它添加一个认证用户?

    0.登录 admin 库,开启一个 mongo shell mongo --port 27017 -u "adminUser" -p "adminPass" - ...