Skip to content

Commit e1f3e29

Browse files
authored
Update bme280.py
1 parent c7a68b3 commit e1f3e29

File tree

1 file changed

+13
-18
lines changed

1 file changed

+13
-18
lines changed

‎sensor/bme280/bme280.py‎

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@
1212
BME280_I2C_ADDR = const(0x76)
1313

1414
class BME280():
15-
def __init__(self, i2c):
15+
def __init__(self, i2c, addr = BME280_I2C_ADDR):
1616
self.i2c = i2c
17+
self.addr = addr
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))
@@ -48,32 +51,25 @@ def __init__(self, i2c):
4851
self.H = 0
4952
self.version = '1.0'
5053

51-
def short(self, dat):
54+
def short(self, dat):
5255
if dat > 32767:
5356
return dat - 65536
5457
else:
5558
return dat
5659

5760
# set reg
58-
def setReg(self, reg, dat):
59-
buf = bytearray(2)
60-
buf[0] = reg
61-
buf[1] = dat
62-
self.i2c.writeto(BME280_I2C_ADDR, buf)
63-
61+
def setReg(self, reg, dat):
62+
self.tb[0] = dat
63+
self.i2c.writeto_mem(self.addr, reg, self.tb)
64+
6465
# get reg
65-
def getReg(self, reg):
66-
buf = bytearray(1)
67-
buf[0] = reg
68-
self.i2c.writeto(BME280_I2C_ADDR, buf)
69-
t = self.i2c.readfrom(BME280_I2C_ADDR, 1)
70-
return t[0]
66+
def getReg(self, reg):
67+
self.i2c.readfrom_mem_into(self.addr, reg, self.rb)
68+
return self.rb[0]
7169

7270
# get two reg
7371
def get2Reg(self, reg):
74-
a = self.getReg(reg)
75-
b = self.getReg(reg + 1)
76-
return a + b*256
72+
return self.getReg(reg) + self.getReg(reg+1) * 256
7773

7874
def get(self):
7975
adc_T = (self.getReg(0xFA)<<12) + (self.getReg(0xFB)<<4) + (self.getReg(0xFC)>>4)
@@ -136,4 +132,3 @@ def poweroff(self):
136132
# normal mode
137133
def poweron(self):
138134
self.setReg(0xF4, 0x2F)
139-

0 commit comments

Comments
 (0)