对micropython 和C2板卡执行 build:prod

This commit is contained in:
Irene-Maxine
2024-11-19 16:00:50 +08:00
parent 8a9ac316d8
commit 448fa016d2
3 changed files with 84 additions and 84 deletions

View File

@@ -1,52 +1,52 @@
#ADXL345
import time
import ustruct
from micropython import const
DATA_FORMAT = const(0x31)
BW_RATE = const(0x2c)
POWER_CTL = const(0x2d)
INT_ENABLE = const(0x2E)
OFSX = const(0x1e)
OFSY = const(0x1f)
OFSZ = const(0x20)
class ADXL345:
def __init__(self, i2c, address=0X53):
self._device = i2c
self._address = address
if self._rreg(0x0) != 0xe5:
raise AttributeError("Cannot find a ADXL345")
self._wreg(DATA_FORMAT,0x2B) #16g量程
self._wreg(BW_RATE,0x0A) #数据输出速度为100Hz
self._wreg(INT_ENABLE,0x00) #不使用中断
self._wreg(OFSX,0x00)
self._wreg(OFSY,0x00)
self._wreg(OFSZ,0x00)
self._wreg(POWER_CTL,0x08) #链接使能,测量模式
time.sleep(0.5)
def readXYZ(self):
x, = ustruct.unpack('<h', self._rreg(0x32,2))
y, = ustruct.unpack('<h', self._rreg(0x34,2))
z, = ustruct.unpack('<h', self._rreg(0x36,2))
return (x/256,y/256,z/256)
def readX(self):
return self.readXYZ()[0]
def readY(self):
return self.readXYZ()[1]
def readZ(self):
return self.readXYZ()[2]
def _wreg(self, reg, val):
'''Write memory address'''
self._device.writeto_mem(self._address,reg,val.to_bytes(1, 'little'))
def _rreg(self, reg,nbytes=1):
'''Read memory address'''
return self._device.readfrom_mem(self._address, reg, nbytes)[0] if nbytes<=1 else self._device.readfrom_mem(self._address, reg, nbytes)[0:nbytes]
#ADXL345
import time
import ustruct
from micropython import const
DATA_FORMAT = const(0x31)
BW_RATE = const(0x2c)
POWER_CTL = const(0x2d)
INT_ENABLE = const(0x2E)
OFSX = const(0x1e)
OFSY = const(0x1f)
OFSZ = const(0x20)
class ADXL345:
def __init__(self, i2c, address=0X53):
self._device = i2c
self._address = address
if self._rreg(0x0) != 0xe5:
raise AttributeError("Cannot find a ADXL345")
self._wreg(DATA_FORMAT,0x2B) #16g量程
self._wreg(BW_RATE,0x0A) #数据输出速度为100Hz
self._wreg(INT_ENABLE,0x00) #不使用中断
self._wreg(OFSX,0x00)
self._wreg(OFSY,0x00)
self._wreg(OFSZ,0x00)
self._wreg(POWER_CTL,0x08) #链接使能,测量模式
time.sleep(0.5)
def readXYZ(self):
x, = ustruct.unpack('<h', self._rreg(0x32,2))
y, = ustruct.unpack('<h', self._rreg(0x34,2))
z, = ustruct.unpack('<h', self._rreg(0x36,2))
return (x/256,y/256,z/256)
def readX(self):
return self.readXYZ()[0]
def readY(self):
return self.readXYZ()[1]
def readZ(self):
return self.readXYZ()[2]
def _wreg(self, reg, val):
'''Write memory address'''
self._device.writeto_mem(self._address,reg,val.to_bytes(1, 'little'))
def _rreg(self, reg,nbytes=1):
'''Read memory address'''
return self._device.readfrom_mem(self._address, reg, nbytes)[0] if nbytes<=1 else self._device.readfrom_mem(self._address, reg, nbytes)[0:nbytes]

View File

@@ -1,31 +1,31 @@
from struct import unpack as unp
from time import sleep_ms
# SHT20 default address
SHT20_I2CADDR = 64
TRI_T_MEASURE_NO_HOLD = b'\xf3'
TRI_RH_MEASURE_NO_HOLD = b'\xf5'
READ_USER_REG = b'\xe7'
WRITE_USER_REG = b'\xe6'
SOFT_RESET = b'\xfe'
class SHT20(object):
def __init__(self, i2c_bus):
self._address = SHT20_I2CADDR
self._bus = i2c_bus
def get_SHT_temperature(self):
self._bus.writeto(self._address, TRI_T_MEASURE_NO_HOLD)
sleep_ms(150)
origin_data = self._bus.readfrom(self._address, 2)
origin_value = unp('>h', origin_data)[0]
value = -46.85 + 175.72 * (origin_value / 65536)
return value
def get_SHT_relative_humidity(self):
self._bus.writeto(self._address, TRI_RH_MEASURE_NO_HOLD)
sleep_ms(150)
origin_data = self._bus.readfrom(self._address, 2)
origin_value = unp('>H', origin_data)[0]
value = -6 + 125 * (origin_value / 65536)
return value
from struct import unpack as unp
from time import sleep_ms
# SHT20 default address
SHT20_I2CADDR = 64
TRI_T_MEASURE_NO_HOLD = b'\xf3'
TRI_RH_MEASURE_NO_HOLD = b'\xf5'
READ_USER_REG = b'\xe7'
WRITE_USER_REG = b'\xe6'
SOFT_RESET = b'\xfe'
class SHT20(object):
def __init__(self, i2c_bus):
self._address = SHT20_I2CADDR
self._bus = i2c_bus
def get_SHT_temperature(self):
self._bus.writeto(self._address, TRI_T_MEASURE_NO_HOLD)
sleep_ms(150)
origin_data = self._bus.readfrom(self._address, 2)
origin_value = unp('>h', origin_data)[0]
value = -46.85 + 175.72 * (origin_value / 65536)
return value
def get_SHT_relative_humidity(self):
self._bus.writeto(self._address, TRI_RH_MEASURE_NO_HOLD)
sleep_ms(150)
origin_data = self._bus.readfrom(self._address, 2)
origin_value = unp('>H', origin_data)[0]
value = -6 + 125 * (origin_value / 65536)
return value