• 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: DTM3202 Arduino Thermal imaging camera ESP32-P4 Module Core Board PSRAM 32MB Flash 16MB N16R32 Onboard ESP32-C6 Raspberry Pi GPS GNSS Expansion Board L76K Beidou (BDS) GLONASS QZSS A-GNSS Also For Jeston Raspberry Pi Pico ST7789 Raspberry Pi Pico 2 RP2350 0.85 inch LCD Display mini Development Board 0.85inch Screen RGB LED/SD Slot /QMI8658 Gyroscope Sensor BG95-M3-Zero QuecPython EVB development support LTE/EGPRS and GNSS Raspberry Pi 8inch LCD 768x1024 Capacitive TouchScreen HDMI Display Raspberry Pi 4/4.3 inch DSI MIPI LCD TouchScreen Display 4/4.3inch 480x800 For Luckfox Lyra RK3506/ESP32-P4/Luckfox Omni3576 Milk-V luckfox-pico-ultra-w-gpio Use X1010 Raspberry Pi 5 PCIe FFC Connector to Standard PCIe x4 Slot Expansion Board ESP32 S3 Development Board 1.43 inch AMOLED Display 1.43inch TouchScreen For Arduino LVGL With SD-Port/ QMI8658C 6-Axis Sensor Sipeed MaixCAM SG2002 RISC-V AI Camera Kit with Screen Audio WIFI6 Linux Board Raspberry Pi AI HAT+ Official Original Hailo-8/8L 13/26Tops For Pi5 PCIe M.2 Gen3 Raspberry Pi DSI display DPI Interface ESP32 P4 Development Board 7inch Display 7 inch TouchScreen Onboard ESP32-C6/Camera-Port/Speaker-Port Raspberry Pi Pico rp2040 Display image 1.3inch LCD ST7789 change bmp to hex Raspberry Pi 3 LCD HAT