最近先后接触了BMP180和BMP280,需要测量大气压力和温度的朋友对这两款传感器比较熟悉。这两款传感器都是出自博世,应用非常广泛! BMP180的驱动地址:http://github.com/BoschSensortec/BMP180_driver BMP280的驱动地址:http://github.com/BoschSensortec/BMP280_driver 我的英文功底和程序功底不是很好,没有读懂,不知道如何利用这两款驱动程序驱动BMP180和BMP280,请懂行的朋友给予指导,不胜感激! 开发环境:STM32F103C8+IAR+STM32CUBEMX,个人认为驱动和使用HAL库或者标准库没有关系,和使用IAR或者KEIL也没有关系,不知道是否正确。请各位大神不吝赐教! |
评分
查看全部评分
#define BMP180_INIT_VALUE ((u8)0)
请教您上面这句程序里的((u8)0)是什么含义?是常量吗?还是强制转变?或者是其他什么?谢谢!
常量。
C 语言原来是没有指定整数常数数据类型的语法的(这类语法最早是 GCC 自行从 C++ 借来的语言扩展,后来才纳入 C99 标准)这些代码为了兼容默认 C89 的 GCC 3、默认 C89 特殊方言的 Intel CC 和默认 C99 的 GCC 5+ 和 LLVM/clang 用了强制类型转换的语法。
评分
查看全部评分
可参考【STM32通过I2C与BMP280通信】
【BMP280气压传感器介绍及资料下载(驱动程序)】
评分
查看全部评分
我不确定是不是LINUX用的? 是把程序放到STM32F103上运行了,但是返回值不对!程序中的条件编译没搞懂怎么用,程序设计者的目的是什么。比如有个条件编译如下:
#ifdef BMP180_API
I2C_routine();
#endif
程序只给出了条件编译,读者也知道如何触发编译,但是我不确定在什么地方触发编译,又在什么地方不触发编译!这点让我很困惑。
现在博世官方不支持用BSP180开发新产品了,谢谢您的帮助!
感觉是在编译的时候传入 -DBMP180_API 这类参数。