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. XML 和 JSON

    1. XML介绍 必须要有节点:根节点必须且只有一个,用户节点可以自定义. 2. JSON介绍: 3.生成json方法 json_encode() 4.xml生成字符串方法有几种 拼装字符串,或者ph ...

  2. 在EXT框架中,使用JS文件设置UEditor文本框,出现新增内容很多,页面变型,不出现滚动条,导致无法进行操作。

    找到UEditor的配置文件:ueditor.config.js(这是我的项目的UEditor的配置文件名) 找到参数设置 autoHeightEnabled 是否自动增长参数,默认为TRUE 当默认 ...

  3. element-ui 的el-button组件中添加自定义颜色和图标

    我使用的element-ui的版本是V1.4.13. 如上图所示,如果使用el-button,加颜色是可以通过设置type属性的值,加图标就设置icon属性的值. 现在产品给了一个需求,就是自定义的很 ...

  4. 【代码笔记】Web-JavaScript-JavaScript注释

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  5. 【代码笔记】Web-JavaScript-JavaScript语法

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  6. python之装饰器(函数)

    1. 装饰器 遵循的原则: 开闭原则:   对功能的扩展开放 对代码的修改是封闭 # 通用装饰器写法 # 存在的意义: 在不破坏原有函数和原有函数调用的基础上,给函数添加新的功能. def wrapp ...

  7. 安卓开发_WebView设置打开网页缩放问题

    之前实现打开网页的方式,测试后,发现不能够对网页进行缩放操作,这对部分网页来说是十分不便的, 百度了一下解决方案 其实只需要加几行代码就可以实现网页缩放操作 settings.setUseWideVi ...

  8. beta冲刺随笔集

    团队成员 郑西坤 031602542 (队长) 陈俊杰 031602504 陈顺兴 031602505 张胜男 031602540 廖钰萍 031602323 雷光游 031602319 吴志鸿 03 ...

  9. datagridview 行高列宽的自动设置

    1) 设定行高和列宽自动调整 [C#]// 设定包括Header和所有单元格的列宽自动调整 DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSi ...

  10. Node.js中文乱码解决方法