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部分参考实例实现



原文地址:https://www.cnblogs.com/braveheart007/p/10357141.html

时间: 2024-08-24 20:22:01

BMP280 driver对接单片机I2C或者SPI总线接口的相关文章

I2C和SPI总线对比【转】

转自:http://blog.csdn.net/skyflying2012/article/details/8237881/ 最近2周一直在调试IIC和SPI总线设备,这里记录一下2种总线,以备后忘. 一 IIC总线 I2C--INTER-IC串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线.它以1根串行数据线(SDA)和1根串行时钟线(SCL)实 现了双工的同步数据传输.具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点.在主从通信中,可以有多个I2C总线器件同时接到I

I2C和SPI总线对比

1 iic总线不是全双工,2根线SCL SDA.spi总线实现全双工,4根线SCK CS MOSI MISO 2 iic总线是多主机总线,通过SDA上的地址信息来锁定从设备.spi总线只有一个主设备,主设备通过CS片选来确定从设备 3 iic总线传输速度在100kbps-4Mbps.spi总线传输速度更快,可以达到30MHZ以上. 4 iic总线空闲状态下SDA SCL都是高电平.spi总线空闲状态MOSI MISO也都是 SCK是有CPOL决定的 5 iic总线scl高电平时sda下降沿标志传

SPI总线

一.SPI总线简介 串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口.SPI 用 于CPU与各种外围器件进行全双工.同步串行通讯.它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK).主机输入/从 机输出数据线(MISO).主机输出/从机输入数据线(MOSI).低电平有效从机选择线CS.当SPI工作时,在移位寄存器中的数据逐位从输出引脚 (MOSI)输出(高位在前),同时从输入引脚(

[SPI&I2C]I2C和SPI协议介绍

IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影.原因是这两种通信协议非常适合近距离低速芯片间通信.Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议. IIC 开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互联方式.电视机是最早的嵌入式系统之一,而最初的嵌

SPI总线协议分析

一.概述 SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现的, 它允许 MCU 以全双工的同步串行方式, 与各种外围设备进行高速数据通信. SPI 主要应用在 EEPROM, Flash, 实时时钟(R

I2S,PCM,IOM-2,I2C,SPI,UART,GPIO

概述 I2S,PCM,IOM-2都是数字音频接口,传数据的. I2C,SPI,UART,GPIO是控制接口,传控制信令的. I2S I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频 数据传输而制定的一种总线标准. I2S至少3根线: 1. 比特时钟线 首先解释一下比特时钟线.比特时钟线上对每个bit有一个脉冲,比特时钟频率是 采样率*每个channel的bit数*channel数,比如,在播放44.1Khz CD的时候,比特时钟频率就是:44.1KHz*16*2

SPI总线的4种工作模式

spi总线的4种工作模式 0 to 4 modes SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的.SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间. SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速

Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备.SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构.另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作.本章的我们就通过这些数据结构和API的讨论来对整个通用接口层进行深入的了解. /**********

Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式.所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回.而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成后,该回调函数会被调用以通知发起者数据传送已经完成.同步方式简单易用,很适合处理那些少量数据的单次传