读取16位A/D转换器的结果
发送控制命令方式
从BMP085 读取数据的步骤如下:
1)发送模块地址 W(表示写操作),如(c) 中的0xEE。
2)送寄存器地址(register address),如(c) 中的第一个0xF6。
3)重新开始IIC 传输(Restart)。
4)发送模块地址 R(表示要进行读操作),如c 中的0xEF。
5)读取测量值的高8 位(MSB)。
6)读取测量值的低8 位(LSB)。
向BMP085 发送命令的步骤如下
1)发送模块地址 W(表示写操作),如d中的0xEE。
2)发送寄存器地址(register address),如d 中的第一个0xF4。
3)发送寄存器的值(control register data),如d 中的第二个0xF4。寄
存器的值代表BMP085 要进行的测量方式。不同的值分别代表,测量
温度;低精度压力测量;中精度压力测量;高精度压力测量。
BMP085 的控制程序编写思路如图1所示
举例来说,向 BMP085 写寄存器地址0xF4 代表要BMP085 进行测量,具体
进行什么测量(温度、高精度压力、中精度压力还是低精度压力)要由发向寄存
器的值(control register data)决定,在d 中control register 的值是0xF4。对
照e可以看出,0xF4 代表要进行高精度的压力测量,需要测量时间25.5ms。
MCU 与BMP085 之间采用IIC 总线进行通信,其原理图如图2所示