def init(self):
# open SPI and initialize RF95
self.spi.open(0,self.cs)
self.spi.max_speed_hz = 488000
self.spi.close()
# set interrupt pin
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.int_pin, GPIO.IN)
GPIO.add_event_detect(self.int_pin, GPIO.RISING, callback=self.handle_interrupt)
# set reset pin
if self.reset_pin != None:
GPIO.setup(self.reset_pin, GPIO.OUT)
GPIO.output(self.reset_pin, GPIO.HIGH)
# wait for reset
time.sleep(0.05)
# set sleep mode and LoRa mode
self.spi_write(REG_01_OP_MODE, MODE_SLEEP | LONG_RANGE_MODE)
time.sleep(0.01)
# check if we are set
if self.spi_read(REG_01_OP_MODE) != (MODE_SLEEP | LONG_RANGE_MODE):
return False
# set up FIFO
self.spi_write(REG_0E_FIFO_TX_BASE_ADDR, 0)
self.spi_write(REG_0F_FIFO_RX_BASE_ADDR, 0)
# default mode
self.set_mode_idle()
self.set_modem_config(Bw125Cr45Sf128)
self.set_preamble_length(8)
return True
评论列表
文章目录