i2c.py 657 B

1234567891011121314151617181920212223242526272829303132
  1. import pyb
  2. from pyb import I2C
  3. # test we can correctly create by id or name
  4. for bus in (-1, 0, 1, 2, 3, "X", "Y", "Z"):
  5. try:
  6. I2C(bus)
  7. print("I2C", bus)
  8. except ValueError:
  9. print("ValueError", bus)
  10. i2c = I2C(1)
  11. i2c.init(I2C.MASTER, baudrate=400000)
  12. print(i2c.scan())
  13. i2c.deinit()
  14. # use accelerometer to test i2c bus
  15. accel_addr = 76
  16. pyb.Accel() # this will init the MMA for us
  17. i2c.init(I2C.MASTER, baudrate=400000)
  18. print(i2c.scan())
  19. print(i2c.is_ready(accel_addr))
  20. print(i2c.mem_read(1, accel_addr, 7, timeout=500))
  21. i2c.mem_write(0, accel_addr, 0, timeout=500)
  22. i2c.send(7, addr=accel_addr)
  23. i2c.recv(1, addr=accel_addr)