time.sleep(1) ''' IO1 = 21 IO1Lock = threading.Lock() IO1Flag = False def IO1CallBack(): global IO1Lock, IO1Flag IO1Lock.acquire() # wait key A lock release IO1Flag = True IO1Lock.release() io1 = GPIO(IO1, GPIO.IN) io1.setInterrupt(GPIO.RISING, IO1CallBack) def main(): global IO1Lock, IO1Flag while True: sensor.clear_interrupt() while IO1Flag: IO1Lock.acquire() # wait io1 release IO1Flag = False IO1Lock.release() print("Distance(mm) :%.f" % sensor.get_distance()) time.sleep(0.1) time.sleep(0.1)
int_pad_Lock.acquire() # wait intPad lock release int_pad_Flag = True int_pad_Lock.release() #如果你想要用SPI驱动此模块,打开下面两行的注释,并通过SPI连接好模块和树莓派 #RASPBERRY_PIN_CS = 27 #Chip selection pin when SPI is selected #acce = DFRobot_H3LIS200DL_SPI(RASPBERRY_PIN_CS) #如果你想要应IIC驱动此模块,打开下面三行的注释,并通过I2C连接好模块和树莓派 I2C_MODE = 0x01 #default use I2C1 ADDRESS_0 = 0x19 #I2C address acce = DFRobot_H3LIS200DL_I2C(I2C_MODE, ADDRESS_0) int_pad = GPIO(INT1, GPIO.IN) # set int_Pad to input int_pad.setInterrupt(GPIO.FALLING, int_pad_callback) #set int_Pad interrupt callback #Chip initialization acce.begin() #Get chip id print("chip id :") print(acce.getID()) ''' set range:Range(g) RANGE_100_G # ±100g RANGE_200_G # ±200g ''' acce.set_range(acce.RANGE_100_G) ''' Set data measurement rate POWERDOWN_0HZ LOWPOWER_HALFHZ