• sales

    +86-0755-88291180

【MicroPython】machine.I2C Function

  • machine.I2C(i2c_id,scl,sda,freq=400000)
    • The I2C object constructor is used to initialize the corresponding channel and pin.
    • i2c_id: Use the I2C channel, which can be 0 or 1;
    • scl: SCL pin, should be a Pin object (I2C0 defaults to 9, I2C1 defaults to 7)
    • sda: SDA pin, should be a Pin object (I2C0 defaults to 8, I2C1 defaults to 6)
    • freq: I2C clock frequency, the default is 400Kb/S
  • I2C.scan()
    • The scan slave function returns a list of all 7-bit addresses of slave devices mounted on the I2C bus.
  • I2C.readfrom(addr, nbytes, stop=True)
    • The function of readfrom is to read data from the device through the I2C bus and return a byte string.
    • addr: slave device address.
    • nbytes: read character length.
    • stop: Whether to send the end signal after receiving the completion data.
  • I2C.readfrom_into(addr, buf, stop=True)
    • The readfrom_into function is an upgraded version of the readfro function, which can specify the read data to be stored in a character array.
    • addr: slave device address
    • buf: character array, used to store data
    • stop: whether to send the end signal after receiving the completion data
  • I2C.writeto(addr, buf, stop=True)
    • The writeto function is used to write data to the slave device.
    • addr: slave device address
    • buf: send string
    • stop: whether to send the end signal after receiving the completion data

Memory Operation

  • I2C.readfrom_mem(addr, memaddr, nbytes, *, addrsize=8)
    • The readfrom_mem function is used to read data from the register of the device.
    • addr: slave device address
    • memaddr: register address
    • nbytes: read length in bytes
    • addrsize: register address length
  • I2C.readfrom_mem_into(addr, memaddr, buf, *, addrsize=8)
    • The readfrom_mem_into function is used to read data from the register of the device to the specified character array.
    • addr: slave device address
    • memaddr: register address
    • buf: character array, used to store data
    • addrsize: register address length
  • I2C.writeto_mem(addr, memaddr, buf, *, addrsize=8)
    • The writeto_mem function is used to write data to the register of the slave device
    • addr: slave device address
    • memaddr: register address
    • buf: send string
    • addrsize: register address length

Software I2C

  • I2C.start()
    • The start function is used to send a start signal in the I2C bus (SCL remains high, SDA turns low)
  • I2C.stop()
    • The start function is used to send a termination signal in the I2C bus (SCL remains high, SDA turns low)

I2C.readinto(buf, nack=True,)

    • The function of readinto is to read data from the I2C bus to the specified character array, and the read length is the length of the character array.
    • buf: character array to store data
    • nack: whether to send a nack signal after receiving the last data
    • I2C.write(buf)
    • The function of the write function is to write the data of the buf character array to the I2C bus.
    • buf: array of characters to send

Demo Address

This article is only for RP2040 MicroPython firmware, and the source code shall prevail. This article is written according to the official source code at the time of writing, which is used to provide convenience for beginners and is for reference only. Those who are capable are recommended to refer to MicroPython.

TAG: IPS MPS2.5G Raspberry Pi 5 PCIe to NVME SSD And 2.5G Ethernet RJ45 HAT RTL8125 2280 2242 2230 Arduino Thermal imaging camera Raspberry Pi USB Global Shutter Camera 1MP OV9281 120fps Black/White 120fps also For Jeston RDK Raspberry Pi Pico ST7789 EchoEar ESP32 S3 AI Development Board with 1.85-inch LCD Display Cute Cat Pet Chatting Robot N32R16 ESP32-S3 ETH Camera Development Board PoE RJ45 / OV2640 OV5640 Port / W5500 / Micro-SD Compatible With Raspberry Pi Pico Size Python UART Communication X1202 Raspberry Pi 5 UPS Board Uninterruptible Power Supply For 18650-Li-Battery (NOT includ) 4-Ports Raspberry Pi Pico 2 RP2350 Core2350B Core Board PSRAM Raspberry Pi 5 ABS Case Raspberry Pi LCD Display Screen 1.3inch LCD with Game Button AND Audio Buzzer For Zero 2W / 3B / 4B / PI5 / RP2040-PiZero Raspberry Pi 5 2.13Inch E-Paper UART TTL To RS485 C Built-In Protection Circuits Core3566102032 Zero LCD HAT (A) 7inch LCD 1024×600 Computer PC Monitor Display Secondary Screen TypeC USB CPU RAM Only For Windows Raspberry Pi 5 POE PCIe To M.2 E KEY NGFF WIFI7 WIFI6 For BE200/AX210/AX200/RTL8822CE Raspberry Pi Display Driver Board