English
English
简体中文
日本語

UiFlow Tutorial

UiFlow1 Development Guide

Project Management

Use LTE network

UiFlow1 Blockly

Event

Unit

I2C Master

Example

Scan I2C device addresses and print them to the serial port.

from m5stack import *
from m5stack_ui import *
from uiflow import *
import i2c_bus

screen = M5Screen()
screen.clean_screen()
screen.set_screen_bg_color(0xFFFFFF)

i2c0 = i2c_bus.easyI2C(i2c_bus.PORTA, 0x00, freq=400000)
i2c0.addr = 0x68
print(i2c0.scan())

API

i2c0 = i2c_bus.easyI2C(i2c_bus.PORTA, 0x00, freq=400000)
  • Initialize an I2C bus on PORTA and set the communication frequency.
i2c0 = i2c_bus.easyI2C((0, 0), 0x00, freq=400000)
  • Initialize an I2C bus on the specified GPIO pins, set the device address and communication frequency.
i2c0.addr = 0x68
  • Set the I2C communication address.
str(i2c0.available())
  • Check if devices are available on the I2C bus and convert the result to a string.
str(i2c0.scan())
  • Scan for all I2C devices on the bus and convert the list of found device addresses to a string.
str(i2c0.read_u8(i2c0.scan()))
  • Read one byte of data from the scanned I2C device.
str(i2c0.read_u16(0x00, byteorder="big"))
  • Read 16-bit data from the specified I2C device address (in big-endian or little-endian order) and convert it to a string.
str(i2c0.read_reg(0x00, 0))
  • Read a specified number of bytes from the specified I2C device address and register, and convert the data to a string.
str(i2c0.read_mem_data(0, 0, i2c_bus.UINT8LE))
  • Read data of a specified type from the specified I2C device address and register, and convert it to a string. Data types can be UINT8LE, UINT16LE, UINT32LE, etc.
str(i2c0.read_data(0, i2c_bus.UINT8LE))
  • Read data of a specified type from the specified I2C device address and convert it to a string. Data types can be UINT8LE, UINT16LE, UINT32LE, etc.
str([][0])
  • Get the element at the specified index from a list and convert it to a string.
i2c0.write_u8(0x00, 0x00)
  • Write one byte of data to the specified I2C device register.
i2c0.write_u16(0x00, 0x0000, byteorder="big")
  • Write 16-bit data to the specified I2C device register with big-endian or little-endian byte order.
i2c0.write_mem_data(0, 0, i2c_bus.UINT8LE)
  • Write data of type UINT8LE to the register at address 0 of the I2C device. The data type can be UINT8LE, UINT16LE, UINT32LE, etc.
i2c0.write_data(0, i2c_bus.UINT8LE)
  • Write data of a specified type to the I2C device.
i2c0.write_mem_list(0, [0, 0, 0])
  • Write a list of byte data to the specified I2C device register.
Page Tools
PDF
On This Page