Skip to content

Commit 709ddda

Browse files
committed
Update bmp280.py
use readfrom_mem/writeto_mem instead of readfrom/writeto
1 parent 6ee34e8 commit 709ddda

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

‎sensor/bmp280/bmp280.py‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@
77
http://www.micropython.org.cn
88
99
'''
10+
from micropython import const
1011
from machine import I2C
1112

1213
BMP280_I2C_ADDR = const(0x76)
1314

1415
class BMP280():
1516
def __init__(self, i2c):
1617
self.i2c = i2c
18+
self.tb = bytearray(1)
19+
self.rb = bytearray(1)
1720
self.dig_T1 = self.get2Reg(0x88)
1821
self.dig_T2 = self.short(self.get2Reg(0x8A))
1922
self.dig_T3 = self.short(self.get2Reg(0x8C))
@@ -41,22 +44,20 @@ def short(self, dat):
4144
return dat - 65536
4245
else:
4346
return dat
44-
47+
4548
# set reg
4649
def setReg(self, reg, dat):
47-
self.i2c.writeto(BMP280_I2C_ADDR, bytearray([reg, dat]))
48-
50+
self.tb[0] = dat
51+
self.i2c.writeto_mem(BMP280_I2C_ADDR, reg, self.tb)
52+
4953
# get reg
5054
def getReg(self, reg):
51-
self.i2c.writeto(BMP280_I2C_ADDR, bytearray([reg]))
52-
t = self.i2c.readfrom(BMP280_I2C_ADDR, 1)
53-
return t[0]
54-
55+
self.i2c.readfrom_mem_into(BMP280_I2C_ADDR, reg, self.rb)
56+
return self.rb[0]
57+
5558
# get two reg
5659
def get2Reg(self, reg):
57-
self.i2c.writeto(BMP280_I2C_ADDR, bytearray([reg]))
58-
t = self.i2c.readfrom(BMP280_I2C_ADDR, 2)
59-
return t[0] + t[1]*256
60+
return self.getReg(reg) + self.getReg(reg+1) * 256
6061

6162
def get(self):
6263
adc_T = (self.getReg(0xFA)<<12) + (self.getReg(0xFB)<<4) + (self.getReg(0xFC)>>4)

0 commit comments

Comments
 (0)