braveheart00721 发表于 2018-6-11 10:11:12

STM32如何用博世官方程序驱动I2C设备BMP180和BMP280

最近先后接触了BMP180和BMP280,需要测量大气压力和温度的朋友对这两款传感器比较熟悉。这两款传感器都是出自博世,应用非常广泛!
BMP180的驱动地址:http://github.com/BoschSensortec/BMP180_driver
BMP280的驱动地址:http://github.com/BoschSensortec/BMP280_driver
我的英文功底和程序功底不是很好,没有读懂,不知道如何利用这两款驱动程序驱动BMP180和BMP280,请懂行的朋友给予指导,不胜感激!
开发环境:STM32F103C8+IAR+STM32CUBEMX,个人认为驱动和使用HAL库或者标准库没有关系,和使用IAR或者KEIL也没有关系,不知道是否正确。请各位大神不吝赐教!


maxtch 发表于 2018-6-11 12:39:21

这个驱动看上去不是给 STM32 用的。感觉上这个驱动是 Linux 下用的。

braveheart00721 发表于 2018-6-11 18:48:18

maxtch 发表于 2018-6-11 12:39
这个驱动看上去不是给 STM32 用的。感觉上这个驱动是 Linux 下用的。

#define   BMP180_INIT_VALUE                        ((u8)0)
请教您上面这句程序里的((u8)0)是什么含义?是常量吗?还是强制转变?或者是其他什么?谢谢!

maxtch 发表于 2018-6-11 23:26:56

braveheart00721 发表于 2018-6-11 18:48
#define   BMP180_INIT_VALUE                        ((u8)0)
请教您上面这句程序里的((u8)0)是什么含义?是常量吗?还是强制 ...

常量。

C 语言原来是没有指定整数常数数据类型的语法的(这类语法最早是 GCC 自行从 C++ 借来的语言扩展,后来才纳入 C99 标准)这些代码为了兼容默认 C89 的 GCC 3、默认 C89 特殊方言的 Intel CC 和默认 C99 的 GCC 5+ 和 LLVM/clang 用了强制类型转换的语法。

feixiang20 发表于 2018-6-12 00:27:51

unsigned char、
可参考【STM32通过I2C与BMP280通信】
【BMP280气压传感器介绍及资料下载(驱动程序)】

braveheart00721 发表于 2018-6-12 14:20:50

maxtch 发表于 2018-6-11 12:39
这个驱动看上去不是给 STM32 用的。感觉上这个驱动是 Linux 下用的。

我不确定是不是LINUX用的? 是把程序放到STM32F103上运行了,但是返回值不对!程序中的条件编译没搞懂怎么用,程序设计者的目的是什么。比如有个条件编译如下:       
      #ifdef BMP180_API
        I2C_routine();
        #endif
程序只给出了条件编译,读者也知道如何触发编译,但是我不确定在什么地方触发编译,又在什么地方不触发编译!这点让我很困惑。

braveheart00721 发表于 2018-6-12 14:22:10

feixiang20 发表于 2018-6-12 00:27
unsigned char、
可参考【STM32通过I2C与BMP280通信】
【BMP280气压传感器介绍及资料下载(驱动程序)】


现在博世官方不支持用BSP180开发新产品了,谢谢您的帮助!

maxtch 发表于 2018-6-12 15:31:56

braveheart00721 发表于 2018-6-12 14:20
我不确定是不是LINUX用的? 是把程序放到STM32F103上运行了,但是返回值不对!程序中的条件编译没搞懂怎么 ...

感觉是在编译的时候传入 -DBMP180_API 这类参数。

Glenxu 发表于 2021-1-11 14:31:31

感谢楼主,很详细的BMP180.H
页: [1]
查看完整版本: STM32如何用博世官方程序驱动I2C设备BMP180和BMP280